带参数的Httpclient POST

时间:2016-03-10 15:06:22

标签: c# web-services

我真的坚持用HttpClient发送一个带有参数的POST请求:

    private async Task<string> PostAsync(string parameterValue)
    {
        var ResponseMessage = await HttpClient.PostAsyncAsync(myUri, new FormUrlEncodedContent(
            new[]
            {
                new KeyValuePair<string, string>("parameter", parameterValue)

谢谢 -                 }));             var httpResponse = await反序列化(ResponseMessage);

        return Response.Token;
    }

我得到的是POST https://URI,其中包含HTTP / 1.1内容中的参数,我需要的是https://URI?parameter=PARAMETERVALUE HTTP / 1.1

有人能帮助我吗?

编辑:

谢谢 - 它就像:

    private async Task<string> PostAsync(string parameterValue)
    {
        var ResponseMessage = await HttpClient.PostAsyncAsync(string.Format(myUri?parameter={0}, parameterValue), null)

2 个答案:

答案 0 :(得分:1)

您正在使用的方法将第二个参数中的所有内容都用于HttpContent。您可以阅读更多here。您应该做的是将参数附加到myUri变量。

答案 1 :(得分:0)

您不应该在URL中传递值,这可能会进入编码的正文部分(可通过HttpWebRequest的请求流访问)。我建议使用Fiddler之类的工具来分析您尝试制作的POST请求的类型,以便了解需要进入正文的数据类型,编码类型,协议等