c# – 在.net中设置post参数的等效方法是什么?

前端之家收集整理的这篇文章主要介绍了c# – 在.net中设置post参数的等效方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须与第三方API集成.要使用该服务,我必须“POST”到具有某些参数的特定URL.

该服务提供的示例代码PHP中,如下所示

$data = array('From' => '0999999','To' => '08888888'); 
$curl = curl_init();
curl_setopt($curl,CURLOPT_FAILONERROR,true);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,CURLOPT_SSL_VERIFYPEER,false);  <--- Ignore SSL warnings
curl_setopt($curl,CURLOPT_POST,true); 
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);

我正在尝试使用WebRequest类在.net中实现相同的功能.但是,我对如何设置post参数数据感到有点困惑.我认为上面的$data只不过是一本词典.所以我创建了一个等效的字典.但是,如何使用字典值设置post参数?

http://msdn.microsoft.com/en-us/library/debx8sh9.aspx中,他们将字符串序列化为字节数组,然后将其设置为dataStream中的post参数.我如何为字典做同样的事情?

或者我的方法不正确?有一个更好的方法吗?

解决方法

通常,WebClient.UploadValues将是最简单的方法; see MSDN for a full example.但请注意,这仅涵盖CURLOPT_POSTFIELDS和CURLOPT_POST.错误失败是自动和隐式的,并且响应已经包含在byte []中.

using(var client = new WebClient()) {
    var data = new NameValueCollection();
    data.Add("From","0999999");
    data.Add("To","08888888");
    var result = client.UploadValues(url,data);
}

注意POST隐含在这里;如果您需要不同的http方法,请使用重载:

var result = client.UploadValues(url,"PUT",data); // for example

猜你在找的C#相关文章