httpClient.PostAsync(url,content)在C#Metro应用程序中不起作用

本文关键字:C#Metro 应用程序 不起作用 content PostAsync url httpClient | 更新日期: 2023-09-27 18:28:40

我使用HttpClient.PostAsync()方法将post请求发送到我的web服务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()方法中以错误的方式传递参数。请给我你的建议。谢谢。

httpClient.PostAsync(url,content)在C#Metro应用程序中不起作用

根据这个MSDN论坛线程,这可能是由不支持"100 continue"期望的代理引起的。

作为解决方法,请将ServicePointManager.Expect100ContinueHttpRequestHeaders.ExpectContinue设置为false