我想通过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);
}
其中json
是对象的json表示。这没用,我尝试使用this post中的查询参数,但返回了相同的404。
有人可以给我一个WebClient示例,它将两个参数发送给POST请求吗?
注意:我试图避免将两个参数包装在同一个类中,只发送给服务(因为我发现了建议here)
答案 0 :(得分:0)
我建议您将参数作为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将使您更容易,因为框架将构造请求的主体,您不必担心连接参数或转义字符。
答案 1 :(得分:0)
我设法通过在地址链接中发送simple参数和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);
}
地址需要期望值参数。