我想将一些帖子数据发送到服务器并阅读响应。他们提供给我的网址是https://thesite.com/page/test.jsp ,我尝试使用 $fp = fsockopen("https://thesite .com/page/test.jsp", 80, $errno, $errstr, 30); 但出现“无法找到“HTTPs””错误。尝试使用 curl 发送数据但与服务器检查,他们没有收到任何请求。还有其他方法吗?
问问题
3799 次
3 回答
5
我有一个类似的问题,问题是默认情况下 curl 不会打开带有不受信任证书的网站。所以你必须禁用这个选项: curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 因此 curl 中用于发出 http 请求的完整脚本将是:
$c = curl_init();
//webpage to which you try to send post
curl_setopt($c, CURLOPT_URL, 'https://www.website/send_request.php');
curl_setopt($c, CURLOPT_POST, true);
// data to be sent via post
curl_setopt($c, CURLOPT_POSTFIELDS, 'var1=324213&var2=432');
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
// Get the response and close the channel.
curl_exec ($c);
// read the error code if there are any errors
if(curl_errno($c))
{
echo 'Curl error: ' . curl_error($c);
}
curl_close ($c);
于 2012-09-09T14:50:44.037 回答
2
虽然 goreSplatter 的回答是正确的,但您在这里处理的是 3 个分层协议 - 位于 SSL 之上的 HTTP 位于套接字之上(而后者又在 IP 堆栈之上运行)。您的方法仅解决 3 个(套接字)之一。
goreSplatter 的方法仍然需要您实现自己的 HTTP 堆栈来处理与服务器的通信——这不是一项简单的任务。
我认为不可能使用文件包装器发布数据(可能使用流包装器),但我建议您使用 cURL 访问 URL 并为自己省去很多痛苦。
您可以在 Google 上找到很多示例 -这里有一个
于 2011-01-21T11:34:09.810 回答