HttpClient在POST期间不传递内容

时间:2013-01-22 08:52:45

标签: c# windows-store-apps httpclient

我正在使用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);

关于什么可能出错的任何建议?

1 个答案:

答案 0 :(得分:0)

UserAgent可能是个问题。 HttpClient on MSDN

  

默认情况下,不会向HTTP请求发送用户代理标头   HttpClient对象的Web服务。一些HTTP服务器,包括   某些Microsoft Web服务器要求使用用户代理标头   包含在客户端发送的HTTP请求中。用户代理   HTTP服务器使用标头来确定如何格式化某些HTTP   页面,以便它们在客户端上针对不同的Web浏览器呈现更好   和外形(例如手机)。一些HTTP服务器   如果客户端上没有用户代理标头,则返回错误   请求。我们需要添加用户代理标头以避免这些错误   使用Windows.Web.Http.Headers命名空间中的类。我们加上这个   标题为HttpClient.DefaultRequestHeaders属性。