我的代码如下所示,但我无法成功获得响应。我的代码有什么问题吗?
代码:
$headers = array('Content-Type: text/xml;charset=UTF-8','Content-Encoding: gzip',);
$gziped_xml_content = gzencode($xml_content);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $the_web_service_url);
curl_setopt($ch, CURLOPT_TIMEOUT,120);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_POSTFIELDS, $gziped_xml_content);
$res = curl_exec($ch);
curl_close($ch);
答案 0 :(得分:3)
代码是正确的。我的意思是卷曲是好的。错误在其他地方。您的代码返回verbose
输出,这意味着代码是正确的。
Accept-Encoding: gzip
Content-Type: text/xml;charset=UTF-8
Content-Encoding: gzip
Content-Length: XXX <- some digits
场景#1 :可能是服务器无法处理gzip数据。所以它给你带来了错误。
场景#2 :可能是您发送的格式不正确的XML,服务器无法解析它并引发错误。
场景#3 :对于正常的卷曲帖子,可能是您发送的数据太大(内容长度> 1024)。那种情况下你必须使用multipart/form-data
表格发布。
但在此之前,使用VERBOSE模式启用运行curl代码,它将帮助您自己调试。
curl_setopt($ch, CURLOPT_VERBOSE, 1);
最后,I cannot get the response successfully
在你的问题中不是一个好点。相反,使用错误,你会遇到更多有问题的信息,这将有助于其他想要帮助你的人!