You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework+SoapLibrary调用SOAP接口遇XML语法错误求助

解决Robot Framework SoapLibrary发送XML报错问题

问题根源

你遇到的XMLSyntaxError本质是服务返回的不是合法XML,而是HTML错误页面(从META和head标签不匹配可判断)。这说明带/soap的URL在SoapLibrary调用时,服务未正确处理请求,返回了网页错误内容;而换/wsdl返回的是WSDL文档,该地址仅用于获取服务描述,并非实际调用接口的端点。

解决方案

方案1:改用RequestsLibrary直接发送HTTP请求

若需直接发送自定义XML,跳过SoapLibrary的WSDL依赖,RequestsLibrary更灵活:

  1. 安装依赖库:
pip install robotframework-requests
  1. 修改测试代码:
*** Settings ***
Library    RequestsLibrary
Library    OperatingSystem

*** Variables ***
${SOAP_ENDPOINT}    http://localhost:81/WS/DLL/JDSPB_WS_IntegraLegado.dll/soap/IJDSPBCAB
${XML_FILE}    ${CURDIR}/FILETEST.xml

*** Test Cases ***
Test Direct SOAP Request
    # 读取XML文件内容
    ${xml_content}    Get File    ${XML_FILE}
    
    # 设置SOAP请求头
    &{headers}    Create Dictionary    Content-Type=text/xml; charset=utf-8
    
    # 发送POST请求
    ${response}    Post Request    url=${SOAP_ENDPOINT}    data=${xml_content}    headers=${headers}
    
    # 验证响应(可选)
    Should Be Equal As Strings    ${response.status_code}    200
    Log    ${response.text}

方案2:修正SoapLibrary的使用方式

若坚持用SoapLibrary,需先通过WSDL创建客户端,再调用对应方法(而非直接传XML文件):

  1. 加载WSDL并调用方法:
*** Variables ***
${WSDL_URL}    http://localhost:81/WS/DLL/JDSPB_WS_IntegraLegado.dll/wsdl/IJDSPBCAB

*** Test Cases ***
Test Soap Method Call
    # 通过WSDL创建客户端
    Create Soap Client    ${WSDL_URL}
    # 替换为实际SOAP方法名及对应参数
    ${response}    Call SOAP Method    YourTargetMethodName    param1=xxx    param2=xxx
    Log    ${response}

若必须直接发送自定义XML,可尝试为SoapLibrary指定SOAPAction请求头:

Create Soap Client    ${URL}    soap_action=http://your-target-soap-action-uri
${response}    Call SOAP Method With XML    ${XML_FILE}

关键注意点

  • 确认SOAP端点要求的请求方式:必须为POST,且Content-Type请求头需正确(通常为text/xml或application/soap+xml)。
  • 对比SOAP工具的请求详情:用抓包工具(如Fiddler、Postman)查看成功调用时的URL、请求头、请求体,确保Robot Framework的请求与之一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:45:25