WebAPI là làm việc như mong đợi bởi vì bạn đang nói với nó rằng bạn đang gửi đối tượng json này:
{ "username":"admin", "password":"admin" }
Sau đó, bạn đang yêu cầu nó để deserialize nó như là một string
đó là không thể vì nó không phải là một chuỗi JSON hợp lệ.
Giải pháp 1:
Nếu bạn muốn nhận được JSON thực tế như trong giá trị của value
sẽ là:
value = "{ \"username\":\"admin\", \"password\":\"admin\" }"
sau đó chuỗi bạn cần phải thiết lập cơ thể của các yêu cầu trong người đưa thư đến là:
"{ \"username\":\"admin\", \"password\":\"admin\" }"
Giải pháp 2 (Tôi giả định điều này là những gì bạn muốn):
Tạo đối tượng C# khớp với JSON để WebAPI có thể deserialize nó đúng cách.
Đầu tiên tạo ra một lớp phù hợp với JSON của bạn:
public class Credentials
{
[JsonProperty("username")]
public string Username { get; set; }
[JsonProperty("password")]
public string Password { get; set; }
}
Sau đó, trong phương pháp của bạn sử dụng này:
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] Credentials credentials)
{
string username = credentials.Username;
string password = credentials.Password;
}
Không là cần phải được 'GetToken ([FromBody] chuỗi Tên truy nhập, [ FromBody] mật khẩu chuỗi) '? Hoặc bạn dự kiến 'giá trị' chứa toàn bộ chuỗi json? – Andrei
tôi muốn chuyển dữ liệu của mình vào nội dung dưới dạng định dạng chuỗi json. Vấn đề trong mã của tôi là gì? – Mennan