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

如何从命令行执行SOAP wsdl web服务调用

督嘉言
2023-03-14

我需要对https://sandbox.mediamind.com/Eyeblaster.MediaMind.API/V2/AuthenticationService.svc?wsdl进行SOAP webservice调用,并在传递参数时使用ClientLogin操作:Application ationKey、Password和UserName。响应是UserSecurityToken。它们都是弦。

这里的链接充分解释了我想做的:https://sandbox.mediamind.com/Eyeblaster.MediaMind.API.Doc/?v=3

如何在命令行上执行此操作?(Windows和/或Linux会有所帮助)

共有3个答案

王翰墨
2023-03-14

下面是银行swift代码的另一个示例CURL-SOAP(WSDL)请求

要求

curl -X POST http://www.thomas-bayer.com/axis2/services/BLZService \
  -H 'Content-Type: text/xml' \
  -H 'SOAPAction: blz:getBank' \
  -d '
  <soapenv:Envelope 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:blz="http://thomas-bayer.com/blz/">
    <soapenv:Header/>
    <soapenv:Body>
      <blz:getBank>
        <blz:blz>10020200</blz:blz>
      </blz:getBank>
    </soapenv:Body>
  </soapenv:Envelope>'

回答

< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: text/xml;charset=UTF-8
< Date: Tue, 26 Mar 2019 08:14:59 GMT
< Content-Length: 395
< 
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <ns1:getBankResponse
      xmlns:ns1="http://thomas-bayer.com/blz/">
      <ns1:details>
        <ns1:bezeichnung>BHF-BANK</ns1:bezeichnung>
        <ns1:bic>BHFBDEFF100</ns1:bic>
        <ns1:ort>Berlin</ns1:ort>
        <ns1:plz>10117</ns1:plz>
      </ns1:details>
    </ns1:getBankResponse>
  </soapenv:Body>
</soapenv:Envelope>
颜安宁
2023-03-14

在linux命令行上,您可以简单地执行:

curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:"  -d @your_soap_request.xml -X POST https://ws.paymentech.net/PaymentechGateway
龙骏
2023-03-14

它是一个标准的、普通的soapweb服务。SSH与此无关。我刚才用curl(一行)来称呼它:

$ curl -X POST -H "Content-Type: text/xml" \
    -H 'SOAPAction: "http://api.eyeblaster.com/IAuthenticationService/ClientLogin"' \
    --data-binary @request.xml \
    https://sandbox.mediamind.com/Eyeblaster.MediaMind.API/V2/AuthenticationService.svc

其中request.xml文件具有以下内容:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.eyeblaster.com/">
           <soapenv:Header/>
           <soapenv:Body>
              <api:ClientLogin>
                 <api:username>user</api:username>
                 <api:password>password</api:password>
                 <api:applicationKey>key</api:applicationKey>
              </api:ClientLogin>
          </soapenv:Body>
</soapenv:Envelope>

我得到了这个漂亮的500:

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <s:Fault>
      <faultcode>s:Security.Authentication.UserPassIncorrect</faultcode>
      <faultstring xml:lang="en-US">The username, password or application key is incorrect.</faultstring>
    </s:Fault>
  </s:Body>
</s:Envelope>

你试过soapui吗?

阅读更多

 类似资料:
  • 问题内容: 我想直接在命令行执行单个php语句,而不必使用单独的php文件。 这怎么可能 ? 问题答案: 如果您要在命令行中使用PHP,建议您安装 phpsh,这是一个不错的PHP shell。这很有趣。 无论如何,php命令提供了 两个开关来从命令行执行代码 : 您可以这样使用php的 -r开关 : 上面的PHP命令应该 输出 并 返回, 如您所见: 另一个有趣的开关是 php -a : 与 p

  • 问题内容: 我有一个配置了执行的插件(antrun),该插件具有一个id,并且未绑定到任何阶段。我可以直接从命令行执行此执行吗? 用以下命令运行它: 或者至少 问题答案: 133 此功能已实现为MNG-5768,并且在Maven 3.3.1中可用。 更改将: 扩展直接插件调用语法,以允许可选的@ execution-id参数,例如org.apache.maven.plugins:maven-rem

  • outputs/exec 插件的运用也非常简单,如下所示,将 logstash 切割成的内容作为参数传递给命令。这样,在每个事件到达该插件的时候,都会触发这个命令的执行。 output { exec { command => "sendsms.pl \"%{message}\" -t %{user}" } } 需要注意的是。这种方式是每次都重新开始执行一次命令并退

  • 问题内容: 我想知道是否可以通过Linux命令行设置gatt服务器。我知道BlueZ gatttool命令允许您充当gatt客户端并询问远程gatt服务器,但是,我认为该工具不能用于设置服务器。 我要实现的是一个 从命令行创建 的gatt服务器,可以被任何中央设备(例如iOS或Android设备)查询,以连接到GATT服务器,发现服务和特征,并操纵特征。 例: 具有1个服务的Gatt服务器,其中包

  • 如何调度执行kubectl命令的cronjob? 我想每5分钟运行以下kubectl命令: 为此,我创建了一个cron工作如下: 但它无法启动容器,显示消息: 错误代码为 127: 根据我检查的结果,错误代码127表示该命令不存在。我怎么能将kubectl命令作为cron作业运行呢?我错过了什么吗? 注意:我发布了一个类似的问题(计划重启 Kubernetes pod 而不停机),但这更多的是将主

  • 问题内容: 当前,在用于创建用于分发代码的jar的工作流中,我: 在Eclipse中右键单击我的项目 选择“导出” 选择“ JAR文件” 取消选中顶级文件,例如.classpath,.project 仅检查“导出生成的类文件” 点击“完成” 这样可以确保.class文件是最新的并创建jar。我想从命令行执行相同的操作,但是大多数用于创建jar的文档似乎只是在破坏已经存在的文件,而没有创建.clas