我使用的是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),
);
$ page在服务器上保存请求,$ buffer包含XML数据。
实际的$ 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缓冲区发布到HTTP URL需要做些什么吗?
提前致谢
答案 0 :(得分:0)
几点:
CURLOPT_CUSTOMREQUEST
。$buffer
读取的流包装器,然后使用fopen
打开并提供CURLOPT_INFILE
选项(当然,如果XML在磁盘上,您可以打开它直接使用fopen
),或者更简单地说,您定义CURLOPT_READFUNCTION
回调。