【发布时间】:2013-12-01 18:32:51
【问题描述】:
我需要帮助将 PHP 的 CURL 转换为 C# HttpWebRequest。我的 c# 代码运行不正常,请求一直加载并以超时异常结束。这是我的 PHP 代码:
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, 'https://api.example.com/');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Origin: http://media.example.com/',
'Accept-Encoding: gzip,deflate,sdch',
'Host: api.example.com',
'Accept-Language: en-US,en;q=0.8',
'Authorization: FD 08306ECE-C36C-4939-B65F-4225F37BD296:905664F40E29B95CF5810B2ACA85497C7430BB1498E74B52',
'Content-Type: application/json',
'Accept: */*',
'Referer: http://example.com',
'User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36',
'Connection: keep-alive'
)
);
curl_setopt($curl, CURLOPT_POSTFIELDS, '{"language":"en","original_text":"' . $text . '","product":"pen"}' . chr(10));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
这是我的 c# 代码:
var request = WebRequest.Create("https://api.example.com/social/autocomplete/v2/search/messages") as HttpWebRequest; ;
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["Origin"] = "http://media.example.com";
request.Headers["Accept-Encoding"] = "gzip,deflate,sdch";
//request.Headers["Host"] = "api.example.com"
request.Host = "api.example.com";
request.Headers["Accept-Language"] = "en-US,en;q=0.8";
request.Headers["Authorization"] = "FD 08306ECE-C36C-4939-B65F-4225F37BD296:905664F40E29B95CF5810B2ACA85497C7430BB1498E74B52";
request.ContentType = "application/json";
request.Accept = "*/*";
request.Referer = "http://example.com/";
request.UserAgent = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36";
request.KeepAlive = true;
byte[] buffer = Encoding.UTF8.GetBytes("{\"language\":\"en\",\"original_text\":\"hello\",\"product\":\"pen\"}");
string result = System.Convert.ToBase64String(buffer);
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(response.ToString());
Console.ReadKey();
我希望有人可以帮助我。提前致谢。
【问题讨论】:
-
你试过什么?你不明白什么?你读过文档吗?
-
基本上我的 c# 代码没有返回任何东西。
-
使用
HttpClient;比WebRequest好多了。 -
所以您问我们为什么您的 C# 代码无法正常工作,却没有告诉我们您编写的代码的任何信息?
-
对不起,添加了我的代码。