【发布时间】:2017-08-08 17:01:13
【问题描述】:
我正在做一个 MVC 5 应用程序,我正在调用另一个解决方案中的 API 控制器方法。
我正在使用HttpClient()。我用一些参数调用PostAsJsonAsync,一个类的实例。
看起来像这样。
string apiUrl = "localhost:8080/api/";
ContactWF contactWF = new contactWF();
contactWF.contact_id=0;
contactWF.UserOrigin_id=20006
contactWF.ProcessState_id=2;
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(apiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.PostAsJsonAsync(apiUrl + "Contact/Method", contactWF);
if (response.IsSuccessStatusCode)
{
return response.Content.ReadAsAsync<int>().Result;
}
}
我的 API 控制器方法是这样的。
[ActionName("Method")]
[HttpGet]
public int Method([FromBody] ContactWF userwf)
{
return 10;
}
效果很好……
我的问题是当我尝试序列化参数类实例时 我换行
HttpResponseMessage response = await client.PostAsJsonAsync(apiUrl + "Contact/Method", contactWF);
这个
string jsonData = JsonConvert.SerializeObject(contactWF);
HttpResponseMessage response = client.PostAsJsonAsync("api/Contact/Method", jsonData).Result;
我有一个Error:405...
它看起来像 Json 字符串,它无法识别为参数。
我的 Json 字符串如下所示。
"{\"Contact_id\":0,\"Description\":null,\"ProcessState_id\":2,\"Type_id\":0,\"Object_id\":0,\"Parent_id\":null}"
即ContactWD类转json。
怎么了?
【问题讨论】:
标签: c# json asp.net-mvc api jsonserializer