Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.net中设置post参数的等效方法是什么?_C#_Asp.net_Httpwebrequest - Fatal编程技术网

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

C# 在.net中设置post参数的等效方法是什么?,c#,asp.net,httpwebrequest,C#,Asp.net,Httpwebrequest,我必须与第三方API集成。要使用该服务,我必须使用某些参数“发布”到特定的url 该服务提供的示例代码是用php编写的,如下所示 $data = array('From' => '0999999', 'To' => '08888888'); $curl = curl_init(); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_

我必须与第三方API集成。要使用该服务,我必须使用某些参数“发布”到特定的url

该服务提供的示例代码是用php编写的,如下所示

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

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false) 如果您使用的是url编码的post数据,则可以使用url对字典的每个键/值对进行url编码


一般来说,
WebClient.UploadValues
将是这里最简单的方法。但是,请注意,这仅包括
CURLOPT_POST字段
CURLOPT_POST
。Fail-on错误是自动且隐式的,并且响应已包含为
字节[]

i、 e

POST
在这里是隐含的;如果需要其他http方法,请使用重载:

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

您可能想使用

为了防止您必须使用HttpWebRequest,下面的代码将名为
formVars
Dictionary
转换为名为
toPost的
字节[]

byte[] toPost = System.Text.Encoding.UTF8.GetBytes(
    String.Join("&", formVars.Select(x =>
        HttpUtility.UrlEncode(x.Key) + "=" +
        HttpUtility.UrlEncode(x.Value)));
);

处使用工作副本是否有与CURLOPT_SSL_VERIFYPEER等效的版本,以便我可以忽略任何SSL异常?远程证书是自生成的SSL证书,第三方Api开发人员希望其他人忽略任何SSL警告。还是以最简单的方式显示方法?这应该是一个单独的问题吗?@sassyboy re SSL,见第二行的打字错误。拼写错误的StringBuilder。
var result = client.UploadValues(url, "PUT", data); // for example
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://url");
request.AllowWriteStreamBuffering = true;
request.Method = "POST";
string post = "From=0999999&To=08888888";
request.ContentLength = post.Length;
request.ContentType = "application/x-www-form-urlencoded";

StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(post);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
byte[] toPost = System.Text.Encoding.UTF8.GetBytes(
    String.Join("&", formVars.Select(x =>
        HttpUtility.UrlEncode(x.Key) + "=" +
        HttpUtility.UrlEncode(x.Value)));
);