C#如何在post调用中传递查询字符串参数

时间:2014-07-16 20:05:17

标签: c# rest http-post query-string

我必须从wpf应用程序调用外部休息服务。我对这项服务没有任何控制权。当我使用休息客户端(例如Postman)向服务发出请求时,它工作正常,即返回成功。对此网址进行了一次邮寄调用:

http://mydomain.com:38080/workshop/rest/login?username=usr&password=pwd

您可以看到我必须在查询字符串中传递用户名和密码。

但是当我从我的应用程序执行相同操作时,服务返回失败。这是我的代码:

string EndPoint = "http://mydomain.com:38080/workshop/";
string parameters = "username=usr&password=pwd";

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
client.BaseAddress = new Uri(EndPoint);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

HttpResponseMessage response = client.PostAsync("rest/login", new StringContent(parameters)).Result;

Task task = response.Content.ReadAsStreamAsync().ContinueWith(t =>
{
    var stream = t.Result;
    using (var reader = new StreamReader(stream))
    {
        responseValue = reader.ReadToEnd();
    }
});

task.Wait();

似乎服务期望查询字符串中的参数,而我的代码在请求标头中传递它们。那么如何在post调用中传递querystring中的参数呢?

0 个答案:

没有答案