发布 SOAP XML 请求

埃卢纳普

我从这里尝试了几个例子,但似乎对我没有任何作用。

我需要为请求发送这个信封:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:v2="http://xmlns.oracle.com/oxp/service/v2">
  <soapenv:Header />
 <soapenv:Body>
  <v2:runReport>
  <v2:reportRequest>
  <v2:attributeLocale>en-US</v2:attributeLocale>
  <v2:attributeTemplate>Default</v2:attributeTemplate>
  <v2:reportAbsolutePath>/Custom/Financials/Fac/XXIASA_FAC.xdo</v2:reportAbsolutePath>
  <v2:dynamicDataSource xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  <v2:parameterNameValues xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  <v2:XDOPropertyList xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  </v2:reportRequest>
  <v2:userID>user</v2:userID>
  <v2:password>password</v2:password>
  </v2:runReport>
  </soapenv:Body>
  </soapenv:Envelope>

这是我的代码:

  $url = 'https://soapurl/v2/ReportService?WSDL';

    $headers = array("Content-type: application/soap+xml; charset=\"utf-8\"", "Content-length: " . strlen($xml));

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    print_r($response);

这是我回来的奇怪结果:

��R;o�0��+\ﱁTj�QZ�S_R���m�%sF�@��k�Q�l�����lwjT紅�$�H��Rñ���6OxW2gy�`�_aPƶ �|�\{��:Q��;�S���H���EG�<9���q$�v&gI�ҟ���l��6y��yB���?[��x���X5�a��6��5& ��<8�Q���e`�/F+������{���]������K�(2Q��T���X(�F*ϵ�k��eym����Ӊ��]�M�!y ��"m.�����0z�|�1���g�����}� ������C

为什么我得到这个?

钍BR

如果您使用网络嗅探器(我会推荐 Wireshark),您会看到数据被压缩。这通常用于服务器端以减少所需的带宽。每个现代浏览器都会自动解压缩,但应用程序上的 curl 不会。如果您将该字符串保存在文件中(response.bin例如)并运行file response.bin,您将看到使用的压缩算法(可能是 gzip 或 deflate)。

要解决这个问题,请让 curl 为您解压缩响应:

curl_setopt($ch,CURLOPT_ENCODING, '');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP XML Soap请求

来自分类Dev

Soap Http发布请求给出IOException

来自分类Dev

在 HTML 中发布 SOAP 请求并获得响应

来自分类Dev

发布请求并获取xml响应

来自分类Dev

没有标题凭证的XML Soap请求

来自分类Dev

如何生成以下SOAP XML请求?

来自分类Dev

带有 MarkupBuilder 的 Groovy SOAP 请求 XML

来自分类Dev

使用 Grails 使用 XML 创建 SOAP 请求

来自分类Dev

用于发布SOAP请求的magento网址是什么

来自分类Dev

WCF发布请求内容类型text / xml

来自分类Dev

使用TidHttp发布无效的XML请求

来自分类Dev

Windows Phone 8的XML HTTP发布请求

来自分类Dev

PHP&XML-如何从XML生成PHP的soap请求?

来自分类Dev

JMeter-将.xml文件作为SOAP / XML请求发送

来自分类Dev

如何动态发布请求正文 (xml) 并验证响应 (xml)?

来自分类Dev

PHP Soap Request:请求中缺少XML正文

来自分类Dev

PHP:编写包含XML数据和SOAPHeader的SOAP请求

来自分类Dev

在IIS上显示来自JavaScript文件的XML响应(SOAP请求)

来自分类Dev

在Laravel 4中发送XML SOAP请求

来自分类Dev

如何使用is-xml-filter验证Mule中的SOAP请求

来自分类Dev

在Angular JS Ionic中使用Soap请求获取XML响应

来自分类Dev

逆向工程:如何产生的后端SOAP请求XML?

来自分类Dev

将Soap XML请求转换为Zeep字典

来自分类Dev

将XML嵌入SOAP请求的CDATA部分时解析错误

来自分类Dev

在SOAP Web服务中获取请求和响应XML

来自分类Dev

PHP:编写包含XML数据和SOAPHeader的SOAP请求

来自分类Dev

将XML文件添加到SOAP请求

来自分类Dev

如何在php中创建soap xml请求

来自分类Dev

如何使用php curl发送XML soap请求