You need to enable JavaScript to run this app. PHP SOAP调用转换为Postman请求返回Bad Request错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PHP SOAP调用转换为Postman请求返回Bad Request错误如何解决

Postman SOAP请求Bad Request错误修复方案

核心错误原因

  • XML嵌套格式错误:XML文档中不允许直接嵌套另一个带<?xml声明的XML内容,PHP代码中内层XML是作为字符串传入,需要用CDATA包裹避免解析冲突
  • 内层XML结构和PHP生成的不一致:PHP生成的内层根节点是<xsd:schema>,没有额外的<PARAMS>父节点,你编写的请求体多了<PARAMS>标签,且根节点命名空间前缀缺失
  • SOAPAction配置要和服务端要求完全匹配,SOAP1.1规范要求SOAPAction头必须用双引号包裹值

必做配置调整

  • 请求头确认:设置两个必填头参数
    • Content-Type: text/xml; charset=utf-8
    • SOAPAction: "你的实际服务地址/ProcessRequestJSON",注意SOAPAction的值两端必须带双引号
  • 如果你调用的是自签SSL证书的接口,需要在Postman设置中关闭SSL校验:Settings -> General -> 关闭SSL certificate verification
  • 请求体格式选择Raw,类型选择XML

修复后请求体示例

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessRequestJSON xmlns="替换为你的实际服务命名空间地址">
      <P_RequestParams>
        <RequestID>48</RequestID>
        <InputData>
        <![CDATA[
            <?xml version="1.0" encoding="utf-8"?>
            <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <ZHT>替换为实际ZHT值</ZHT>
                <PASSWORD>替换为实际密码</PASSWORD>
                <SNL>替换为实际日期值</SNL>
                <USERNAME></USERNAME>
                <RETHASIMA>1</RETHASIMA>
                <LANG></LANG>
                <ROLE>替换为实际角色值</ROLE>
            </xsd:schema>
        ]]>
        </InputData>
      </P_RequestParams>
      <Authenticator>
        <UserName>替换为实际认证用户名</UserName>
        <Password>替换为实际认证密码</Password>
      </Authenticator>
    </ProcessRequestJSON>
  </soap:Body>
</soap:Envelope>

内容的提问来源于stack exchange,提问作者Nimrod Yanai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 00:15:01