SOAP/XML请求在SOAP UI正常,Postman/CURL报错求助
Postman 配置步骤
1. 基础请求设置
- 请求方法选
POST,填好实际的SOAP服务端点URL。
2. 配置请求头
必须添加以下两个关键请求头,不能出错:
Content-Type:text/xml;charset=utf-8SOAPAction:"http://www.opentravel.org/OTA/2003/05/OTA_AirAvailRQ"(这个值要和WSDL里定义的对应Action一致,拿不准直接从SOAP-UI的请求头里复制)
3. 配置请求体
- 切换到
Body标签,选择raw格式,右侧下拉菜单选XML(选Text也可以)。 - 直接粘贴你的SOAP XML内容,不要加多余空格、换行或转义字符,保持纯XML格式,别用JSON包裹。
4. 检查WS-Security头
确认XML里的 <wsse:Security> 块完整,mustUnderstand="1" 属性没被修改,用户名和密码正确。
CURL 适配命令
把 <your-soap-endpoint-url> 替换为实际服务地址,执行以下命令:
curl -X POST \ <your-soap-endpoint-url> \ -H 'Content-Type: text/xml;charset=utf-8' \ -H 'SOAPAction: "http://www.opentravel.org/OTA/2003/05/OTA_AirAvailRQ"' \ -d '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Header> <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-AAAKHI2521" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>BUKHARIAPI</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass1234</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> <soap:Body xmlns:ns2="http://www.opentravel.org/OTA/2003/05"> <ns2:OTA_AirAvailRQ EchoToken="11868765275150-1300252521" PrimaryLangID="en-us" SequenceNmbr="1" Target="TEST" TimeStamp="2024-01-02T23:29:27" Version="20061.00"> <ns2:POS> <ns2:Source TerminalID="AAAKHI2521"> <ns2:RequestorID ID="BUKHARIAPI" Type="4" /> <ns2:BookingChannel Type="12" /> </ns2:Source> </ns2:POS> <ns2:OriginDestinationInformation> <ns2:DepartureDateTime>2024-01-15T00:00:00</ns2:DepartureDateTime> <ns2:OriginLocation LocationCode="KHI" /> <ns2:DestinationLocation LocationCode="ISB" /> </ns2:OriginDestinationInformation> <ns2:TravelerInfoSummary> <ns2:AirTravelerAvail> <ns2:PassengerTypeQuantity Code="ADT" Quantity="1" /> </ns2:AirTravelerAvail> </ns2:TravelerInfoSummary> </ns2:OTA_AirAvailRQ> </soap:Body> </soap:Envelope>'
注意事项
- 若在Windows命令行执行,需将XML中的双引号用反斜杠转义(如
\"BUKHARIAPI\"),或直接用PowerShell执行以避免转义麻烦。 - 复制CURL命令时注意检查,不要因换行导致语法错误。
内容的提问来源于stack exchange,提问作者Mohib Salahuddin Ayubi
相关产品推荐
相关产品推荐

