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

Workday请求在SoapUI中工作,但在Postman中不工作

宰父学
2023-03-14

我正在尝试调用Workday招聘网络服务的Put_Background_Check操作。我已经在SoapUI中打开了WSDL文件,并成功地发送了以下XML。。。

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wd="urn:com.workday/bsvc">
    <env:Body>
        <wd:Put_Background_Check_Request
            xmlns:wd="urn:com.workday/bsvc"
            wd:version="v26.2">
            <wd:Business_Process_Parameters>
                <wd:Run_Now>true</wd:Run_Now>
            </wd:Business_Process_Parameters>
            <wd:Background_Check_Data>
                <wd:Event_Reference>
                    <wd:ID wd:type="Background_Check_ID">BACKGROUND_CHECK_EVENT-6-96</wd:ID>
                </wd:Event_Reference>
                <wd:Background_Check_Status_Data>
                    <wd:Status_Date>2016-12-16</wd:Status_Date>
                    <wd:Status_Reference>
                        <wd:ID wd:type="Background_Check_Status_ID">Background_Check_Status_Pending</wd:ID>
                    </wd:Status_Reference>
                </wd:Background_Check_Status_Data>
                <wd:Package_Reference_Data>
                    <wd:Package_Reference>
                        <wd:ID wd:type="Background_Check_Package_ID">BACKGROUND_CHECK_PACKAGE_QR1SQ</wd:ID>
                    </wd:Package_Reference>
                    <wd:Status_Reference>
                        <wd:ID wd:type="Background_Check_Status_ID">Background_Check_Status_Pending</wd:ID>
                    </wd:Status_Reference>
                </wd:Package_Reference_Data>
            </wd:Background_Check_Data>
        </wd:Put_Background_Check_Request>
    </env:Body>
</env:Envelope>

我得到以下回应。。。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Body>
      <wd:Put_Background_Check_Response wd:version="v26.2" xmlns:wd="urn:com.workday/bsvc">
         <wd:Event_Reference wd:Descriptor="Background Check for Job Application: Elizabeth Taylor - R0000039 Diversity Report Test (Open)">
            <wd:ID wd:type="WID">ee6477431cb2100ca61ac0100d041523</wd:ID>
            <wd:ID wd:type="Background_Check_ID">BACKGROUND_CHECK_EVENT-6-96</wd:ID>
         </wd:Event_Reference>
      </wd:Put_Background_Check_Response>
   </env:Body>
</env:Envelope>

问题是,当我试图在Postman(或cURL或Python请求)中用相同的标题重新创建相同的POST请求时,我会得到无效的用户名或密码错误。SoapUI在这里做什么特别的事情吗?本案的回应如下...

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc">
            <faultcode>SOAP-ENV:Client.authenticationError</faultcode>
            <faultstring>invalid username or password</faultstring>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

共有1个答案

顾炎彬
2023-03-14

在这种情况下,SoapUI会修改传出的XML。它在

<env:Header>
    <wsse:Security
        env:mustUnderstand="1"
        xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:UsernameToken wsu:Id="UsernameToken-86F2FCCEFFBB80C4CD14820998755791">
            <wsse:Username>username@tenant</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
            <wsse:Nonce
                EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">asdfwrqwarqwr1+oA==
            </wsse:Nonce>
            <wsu:Created>2016-12-18T22:24:30.575Z</wsu:Created>
        </wsse:UsernameToken>
    </wsse:Security>
</env:Header>

因此,我将其添加到原始XML中,并从请求中删除了Basic Auth标头,它可以工作。

 类似资料:
  • 我有一个python代码,用来创建一个json文件,作为post请求中的数据。 变量如下所示: 当我打印上述变量时,我得到以下输出: 当我在我的邮递员请求上使用以下输出时,它会像我期望的那样工作。但是当我使用相同的变量发送带有以下函数的超文本传输协议请求时,我得到了一个错误。 为什么我的输出在postman上工作,而不是在python本身?

  • 我将GET请求发送到具有相同标头的相同endpoint,包括承载,但当我从Postman调用时得到200和正确的JSON,当我在我的(Vue)项目中使用Axios发送请求时,我得到302。 运行在localhost:8080(如果有用)上的本地项目的调用如下: 而在《邮递员》中,我所做的就是用相同的url创建一个GET请求,我在标题中添加的只是“承载者…” 我从axios得到的错误是: 响应状态是

  • 不确定是否“内容安全策略:页面的设置阻止了在https://localhost:5000/favicon.ico(”default-src“)加载资源。”会影响。我试图使用network选项卡查看此请求,但我收到了这条消息。 它还使用Swagger UI工作:https://Swagger.io/tools/swagger-ui/

  • 请求在Postman/Java中失败,但在RESTClient中工作…以下是请求,并附上错误的截图。 这是一个POST请求 {“username”:“test”,“password”:“test”,“simulate_user”:“test”,“sourcetabledesc”:“testlist100”,“联系人”:[{“组织”:“ckt”,“workphone”:“12315423”,“fir

  • 我有一个对soap Web服务的请求,该服务在SoapUi中运行良好。我想在python脚本中调用此Web服务。 我尝试了一些模块:zeep,泡沫,...但是我总是有一个SSL错误。 以下是信息: https://37.71XXXXXXACONYX?wsdl 基本认证:用户名密码 身份验证类型:抢占式 我在SoapUi中提供了xml。 有人有什么想法吗? 谢谢!! 我试过:

  • 当我试图通过邮递员发送时,我有一个请求正在正常工作。我试图实现相同的使用代码,我面临一个错误。 我正在使用的代码- 我得到的错误是- org.springframework.web.client.HttpClientErr异常$未授权: 401未授权 但《邮递员》中同样的作品也有同样的细节。 我想说明一下 后端API不在我手里。 clientid,clientSecret,access_token