如何使用 WebClient 将多个参数发送到 Web API 调用
How to send multiple parameters to a Web API call using WebClient
我想通过 POST 请求将两个参数发送到 Web API 服务。当我尝试以下方式时,我目前收到 404 not found,从 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);
}
其中 json
是对象的 json 表示。这没有用,我尝试使用 this post 中的查询参数,但返回了相同的 404 未找到。
有人可以向我提供一个向 POST 请求发送两个参数的 WebClient 示例吗?
注意:我试图避免将两个参数包装在同一个 class 中,只是为了发送到服务(因为我发现了建议 )
我建议将您的参数作为 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 会让您更轻松,因为框架将构建请求的主体,您不必担心连接参数或转义字符。
我通过发送地址 link 中的简单参数和 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);
}
地址需要期望值参数。
我想通过 POST 请求将两个参数发送到 Web API 服务。当我尝试以下方式时,我目前收到 404 not found,从 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);
}
其中 json
是对象的 json 表示。这没有用,我尝试使用 this post 中的查询参数,但返回了相同的 404 未找到。
有人可以向我提供一个向 POST 请求发送两个参数的 WebClient 示例吗?
注意:我试图避免将两个参数包装在同一个 class 中,只是为了发送到服务(因为我发现了建议
我建议将您的参数作为 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 会让您更轻松,因为框架将构建请求的主体,您不必担心连接参数或转义字符。
我通过发送地址 link 中的简单参数和 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);
}
地址需要期望值参数。