我正在构建一个用于同步数据和下拉对象的小型Web API,但无论我尝试过什么,推送我的对象都不起作用。
编辑以反映一些变化:
这是我的控制器:
[System.Web.Mvc.HttpPost]
public void UpdateTasks([FromBody] string s)
{
Console.WriteLine(s);
}
这是我的客户代码:
HttpContent c = new StringContent("1234");
HttpClient client = new HttpClient();
c.Headers.ContentType = new MediaTypeHeaderValue("application/json");
client.BaseAddress = new Uri("http://localhost/QAQC_SyncWebService/Tasks/UpdateTasks/");
var resp = client.PostAsync(client.BaseAddress, c).Result;
如果我把它放在URI中,我可以获得一个值,但单独的字符串内容似乎不起作用。
答案 0 :(得分:2)
尝试
[HttpPut]
public void UpdateTasks([FromBody]string s)
{
Console.WriteLine(s);
}
请注意:
来自http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/
答案 1 :(得分:1)
您正在初始化client.BaseAddress的行看起来有点偏。
HttpContent c = new StringContent("1234");
HttpClient client = new HttpClient();
c.Headers.ContentType = new MediaTypeHeaderValue("application/json");
client.BaseAddress = new Uri("http://localhost/QAQC_SyncWebService/Tasks/UpdateTasks");
var resp = client.PutAsync(client.BaseAddress, c).Result;
PutAsync方法需要完整的URI,而不仅仅是方法。在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/hh138168(v=vs.118).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1