我使用php 5.2.9,我有一个XML缓冲区,我需要发布到一些HTTPS URL。
这样做的正确方法是什么?我在网上看到了各种各样的例子,似乎没有一个对我有效:一些定义cURL头的方式如下:
$headers = array(
"POST " . $page . " HTTP/1.0",
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/xml",
"Cache-Control: no-cache",
"Pragma: no-cache",
"SOAPAction: \"run\"",
"Content-length: ".strlen($buffer),
);其中XML包含服务器上的请求,$buffer包含$page数据。
实际的$buffer作为值被发送为:
curl_setopt($curl, CURLOPT_POSTFIELDS, $buffer);但我不明白这是如何工作的,因为CURLOPT_POSTFIELDS希望它的值是一个数组,而不是一个缓冲区。
然后,我看到了配置调用的SSL方面的几种方法:
curl_setopt($curl, CURLOPT_SSLVERSION,3);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,2);这些都需要吗?我看到了一些示例,其中也设置了以下内容:
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
curl_setopt($curl, CURLOPT_USERPWD, "username:password"); 有人能发布一个完整的工作示例,解释使用cURL将XML buffer发布到HTTP URL需要做些什么吗?
提前感谢
发布于 2010-08-22 23:00:42
以下是几点:
CURLOPT_CUSTOMREQUEST。$buffer读取的流包装,然后使用fopen打开它并将其作为CURLOPT_INFILE选项提供(当然,如果XML在磁盘上,您可以直接使用fopen打开它),或者,更简单地说,您可以定义一个CURLOPT_READFUNCTION验证对等部分,只有当您想要检查服务器证书的有效性时才需要(您应该这样做)。如果服务器需要基本身份验证,则必须使用https://stackoverflow.com/questions/3541885
复制相似问题