加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:07:24 所属栏目:百科 来源:网络整理
导读:我必须与第三方API集成.要使用该服务,我必须“POST”到具有某些参数的特定URL. 该服务提供的示例代码在php中,如下所示 $data = array('From' = '0999999','To' = '08888888'); $curl = curl_init();curl_setopt($curl,CURLOPT_FAILONERROR,true);curl_setopt
我必须与第三方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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读