【发布时间】:2016-01-15 21:18:34
【问题描述】:
我正在构建一个用于同步数据和下拉对象的小型 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 中,我可以得到一个值,但是单独的字符串内容似乎不起作用。
【问题讨论】:
-
设置Content-Type:application/json,字符串前也使用[FromBody]
-
我做了:c.Headers.ContentType = new MediaTypeHeaderValue("application/json");它仍然是空的。
-
很可能您的 PUT 请求被网络服务器阻止。看看这个线程之一:stackoverflow.com/questions/10906411/…stackoverflow.com/questions/28579073/…
-
就像脏检查一样,你为什么不尝试使用完整的 URL:
"http://localhost/QAQC_SyncWebService/Tasks/1234" -
@MarkC。我使用完整的 url 并且只有当我将其更改为 Post 操作时才有效。
标签: c# asp.net-web-api dotnet-httpclient