httpClient.PostAsync(url,content)无法在C#Metro应用程序中运行

时间:2013-08-23 07:58:18

标签: c# windows xaml http-headers http-post

我正在使用HttpClient.PostAsync()方法将帖子请求发送到我的网络服务API。 我正在传递api URL地址以及queryString参数.. 但是PostAsync()方法无法正常工作,发出错误:

  

状态码417期望失败。

    public override async void SendPostRequest(REQUEST_NAME reqName, IDictionary<string, object> args)
    {
        var _client = new System.Net.Http.HttpClient();
        _client.BaseAddress = new Uri("http://www.example.com/api/v2.0/");
        _client.MaxResponseContentBufferSize = 256000;
        string queryString = "?";
        string url = reqName.ToString() + ".json" + queryString;

        string queryStringparam = "";
        foreach (KeyValuePair<string, object> param in args)
        {
            queryStringparam += param.Key + "=" + param.Value + "&";
        }

       // queryStringparam=name="abc&age=25&event=browsed&url=www.google.com"

       var response = await _client.PostAsync(url, new StringContent(queryStringparam));
        if (response.IsSuccessStatusCode)
        {

        }

可能是我在PostAsync()方法中以错误的方式传递参数。 请告诉我你的建议。感谢。

1 个答案:

答案 0 :(得分:0)

根据this MSDN forum thread,这可能是由不支持“100继续”期望的代理引起的。

要解决此问题,请将ServicePointManager.Expect100ContinueHttpRequestHeaders.ExpectContinue设置为false