问题描述
我的代码如下所示,但是我无法成功获得响应。我的代码有什么问题吗?
My code like that as below, but I cannot get the response successfully. Is anything wrong with my code?
代码:
$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);
推荐答案
代码正确。我的意思是卷曲没有问题。该错误在其他地方。您的代码将在详细
输出之后返回,这表明代码正确。
The code is correct. I mean the curl is ok. The error is elsewhere. Your code returns following verbose
output which implies the code is correct.
Accept-Encoding: gzip
Content-Type: text/xml;charset=UTF-8
Content-Encoding: gzip
Content-Length: XXX <- some digits
方案#1 :可能是服务器无法处理gzip数据。
Scenario#1: It can be the server can not handle gzip data. So its throwing you error.
场景#2 :可能是您发送的XML格式不正确,服务器无法解析它并抛出错误。
Scenario#2: May be the XML you are sending that has incorrect format, and server failed to parse it and throw you error.
场景#3 :可能是您发送的数据太大(内容长度> 1024),对于正常情况卷曲的职位。在这种情况下,您必须使用 multipart / form-data
表单发布。
Scenario#3: May be the data you are sending its too large(content length > 1024) for a normal curl post. That case you have to use multipart/form-data
form posting.
但是在执行任何操作之前,请运行curl代码
But before anything, run the curl code with VERBOSE mode enable and it will help you to debug this yourself.
curl_setopt($ch, CURLOPT_VERBOSE, 1);
最后,我无法成功获得响应
在您的问题中不是一个好主意。宁可使用错误来解决更多问题信息,也将帮助想要帮助您的其他人!
Finally, I cannot get the response successfully
is not a good point to make in your question. Rather using the error you are getting along with more problematic info will help the others who want to help you!
这篇关于如何使用curl和php发送压缩的xml内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!