我正在使用HttpClient
进行简单的通话。问题是它似乎没有发送我提供的内容。服务器给我一个错误,当我用Fiddler查看请求时,它没有显示内容:
HttpContent content = new FormUrlEncodedContent(
new List<KeyValuePair<string, string>> {
new KeyValuePair<string, string>("key1", "value1"),
new KeyValuePair<string,string>("key2","value2"),
new KeyValuePair<string,string>("key3","value3"),
new KeyValuePair<string,string>("key4", "value4"),
new KeyValuePair<string, string>("key5", "value5"),
new KeyValuePair<string, string>("key6", "value6")
});
content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
content.Headers.ContentType.CharSet = "UTF-8";
HttpResponseMessage resposne = await client.PostAsync(new Uri("my_url"), content);
关于什么可能出错的任何建议?
答案 0 :(得分:0)
UserAgent可能是个问题。 HttpClient on MSDN
默认情况下,不会向HTTP请求发送用户代理标头 HttpClient对象的Web服务。一些HTTP服务器,包括 某些Microsoft Web服务器要求使用用户代理标头 包含在客户端发送的HTTP请求中。用户代理 HTTP服务器使用标头来确定如何格式化某些HTTP 页面,以便它们在客户端上针对不同的Web浏览器呈现更好 和外形(例如手机)。一些HTTP服务器 如果客户端上没有用户代理标头,则返回错误 请求。我们需要添加用户代理标头以避免这些错误 使用Windows.Web.Http.Headers命名空间中的类。我们加上这个 标题为HttpClient.DefaultRequestHeaders属性。