如何使用WebClient向Web API调用发送多个参数
本文关键字:参数 调用 API 何使用 WebClient Web | 更新日期: 2023-09-27 17:59:25
我想通过POST请求向Web API服务发送两个参数。当我以以下方式尝试时,我目前收到404未找到,如msdn:
public static void PostString (string address)
{
string data = "param1 = 5 param2 = " + json;
string method = "POST";
WebClient client = new WebClient ();
string reply = client.UploadString (address, method, data);
Console.WriteLine (reply);
}
其中CCD_ 1是对象的json表示。这不起作用,我在这篇文章中尝试了查询参数,但返回了未找到的404。
有人能给我举一个WebClient的例子吗?它向POST请求发送两个参数?
注意:我试图避免将两个参数包装在同一个类中,只发送到服务(正如我在这里找到的建议)
我建议将参数作为NameValueCollection发送。
当使用NameValueCollection:发送参数时,您的代码会是这样的
using(WebClient client = new WebClient())
{
NameValueCollection requestParameters = new NameValueCollection();
requestParameters.Add("param1", "5");
requestParameters.Add("param2", json);
byte[] response = client.UploadValues("your url here", requestParameters);
string responseBody = Encoding.UTF8.GetString(response);
}
使用UploadValues会让你更容易,因为框架会构造请求的主体,你不必担心串联参数或转义字符。
我通过在地址链接中发送简单参数和作为主体数据的json,成功地发送了json对象和简单值参数:
public static void PostString (string address)
{
string method = "POST";
WebClient client = new WebClient ();
string reply = client.UploadString (address + param1, method, json);
Console.WriteLine (reply);
}
Where address需要值参数。