当前位置: 首页 > 知识库问答 >
问题:

无法处理消息,因为内容类型为“text/xml”;charset=utf-8“不是预期的类型”应用程序/soap xml;字符集=utf-8'

戚研
2023-03-14

在实现下面的代码后,我得到“无法处理消息,因为内容类型‘text/xml;charset=utf-8’不是预期的类型‘application/soap xml;charset=utf-8’”。请帮助调查这个问题。

我在soapui上尝试了同样的服务,并取得了成功。在将SOAP版本更改为1.1之后,我在SOAP UI中也收到了同样的消息。

示例代码

<?php
    $context = stream_context_create([
        'ssl' => [
            'soap_version' => SOAP_1_2,
            'verify_peer' => false,
            'verify_peer_name' => false,
            'connection_timeout' => 1
            ]
    ]);

       $requestParams = '<?xml version="1.0" encoding="UTF-8"?>
        <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
        <s:Header>
            <CustomHeader xmlns="http://schemas.test.com/CustomHeader">

            </CustomHeader>
        </s:Header>
        <s:Body>

        </s:Body>
    </s:Envelope>';


        $client  = new SoapClient('https://myservice.svc?singlewsdl',  array('stream_context' => $context)); 
        $client->__setLocation('https://myservice.svc');
        $response = $client->__soapCall('mymethod', array($requestParams));
    ?>

共有1个答案

慕容耘豪
2023-03-14

我认为不能在SSL参数下设置soap版本。尝试在初始化期间将soap版本设置为其他参数。

    $client  = new SoapClient('https://myservice.svc?singlewsdl',  array('soap_version' => SOAP_1_2,'stream_context' => $context)); 
 类似资料: