已发送的 SOAP 请求
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://fedex.com/ws/ship/v12">
<SOAP-ENV:Body>
<ns1:ProcessShipmentRequest>
<ns1:WebAuthenticationDetail>
<ns1:UserCredential>
<ns1:Key>kQyj3MtQGLJ3ZYWG</ns1:Key>
<ns1:Password>66ywMwyasljK5uRkaNENRZCZW</ns1:Password>
</ns1:UserCredential>
</ns1:WebAuthenticationDetail>
<ns1:ClientDetail>
<ns1:AccountNumber>510087682</ns1:AccountNumber>
<ns1:MeterNumber>100154483</ns1:MeterNumber>
</ns1:ClientDetail>
<ns1:TransactionDetail>
<ns1:CustomerTransactionId>*** Express Domestic Shipping Request v12 using PHP ***</ns1:CustomerTransactionId>
</ns1:TransactionDetail>
<ns1:Version>
<ns1:ServiceId>ship</ns1:ServiceId>
<ns1:Major>12</ns1:Major>
<ns1:Intermediate>1</ns1:Intermediate>
<ns1:Minor>0</ns1:Minor>
</ns1:Version>
<ns1:RequestedShipment>
<ns1:ShipTimestamp>2013-03-25T14:33:08+00:00</ns1:ShipTimestamp>
<ns1:DropoffType>REGULAR_PICKUP</ns1:DropoffType>
<ns1:ServiceType>FEDEX_GROUND</ns1:ServiceType>
<ns1:PackagingType>YOUR_PACKAGING</ns1:PackagingType>
<ns1:TotalWeight>
<ns1:Units>LB</ns1:Units>
<ns1:Value>17.22</ns1:Value>
</ns1:TotalWeight>
<ns1:Shipper>
<ns1:Contact>
<ns1:PersonName>Shipping Department</ns1:PersonName>
<ns1:CompanyName>Big Dog Treestands</ns1:CompanyName>
<ns1:PhoneNumber>3092636800</ns1:PhoneNumber>
</ns1:Contact>
<ns1:Address>
<ns1:StreetLines>120 E. Detroit Parkway</ns1:StreetLines>
<ns1:City>Morton</ns1:City>
<ns1:StateOrProvinceCode>IL</ns1:StateOrProvinceCode>
<ns1:PostalCode>61550</ns1:PostalCode>
<ns1:CountryCode>US</ns1:CountryCode>
</ns1:Address>
</ns1:Shipper>
<ns1:Recipient>
<ns1:Contact>
<ns1:PersonName>David Sinc</ns1:PersonName>
<ns1:CompanyName>TEST COMPANY</ns1:CompanyName>
<ns1:PhoneNumber>3093701229</ns1:PhoneNumber>
</ns1:Contact>
<ns1:Address>
<ns1:StreetLines>1202 Chalet Ln</ns1:StreetLines>
<ns1:StreetLines>HIDDLY- …Run Code Online (Sandbox Code Playgroud) 我们收到以下错误
SOAP 错误:解析 WSDL:无法从“ https://www.example.com/api/v2_soap?wsdl=1 ”加载:无法加载外部实体“ https://www.example.com/api/ v2_soap?wsdl=1 "
此 SOAP 错误的原因可能是什么?
Curlwrappers 已经被禁用。
按照建议,我查看了这个帖子soap api : Start tag expected, '<' not found' 我发现 ini_set('display_errors',0); 已经关闭。仍然无法克服 SOAP 错误。
我是 SOAP Web 服务的新手,因此参考了使用 Spring 创建 SOAP Web 服务的教程之一。. 我已经从看起来像这样的 xsd 创建了 wsdl。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://spring.io/guides/gs-producing-web-service"
targetNamespace="http://spring.io/guides/gs-producing-web-service" elementFormDefault="qualified">
<xs:element name="getCountryRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getCountryResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="country" type="tns:country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="country">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="population" type="xs:int"/>
<xs:element name="capital" type="xs:string"/>
<xs:element name="currency" type="tns:currency"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="currency">
<xs:restriction base="xs:string">
<xs:enumeration value="GBP"/>
<xs:enumeration value="EUR"/>
<xs:enumeration value="PLN"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
我还在下面创建了服务端点。
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import …Run Code Online (Sandbox Code Playgroud) 在旧的解决方案中,我有一个名为 的文件夹App_WebReferences,它包含另一个名为ReportExecution. 它包含一个名为的文件,ReportExection2005.discomap并且该文件具有 Web 服务的符号。
最后在这个文件中我有一个ReportExection2005.wsdl.
我想在新解决方案上做同样的事情,但我只能导入.wsdl文件,不能导入.discomap. 我不知道它是否必须自动完成,或者我应该自己创建该文件夹。
我using ReportService;导入 Web 服务的任何方式都没有被识别。我尝试使用“添加 Web 引用”、“添加现有文件”。没有任何效果
php缓存wsdl的目的是为了提高性能吗?
默认情况下,php 似乎会将文件缓存 1 天。如果网络服务更新会发生什么?会不会一天都不知道?
在从 WCF 服务创建代理时,我在服务中声明的每个值类型成员在代理中创建了一个更多的 bool 类型指定字段。有什么办法可以摆脱这种情况并继续与服务进行交易?
我在服务中描述了以下课程
[DataContract]
public class Customer
{
private int customerID;
[DataMember]
public int CustomerID
{
get { return customerID; }
set { customerID = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
在创建代理时,我有这样的代理类
public partial class Customer
{
private int customerIDField;
private bool customerIDFieldSpecified;
public int CustomerID
{
get { return this.customerIDField; }
set { this.customerIDField = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我如何摆脱代理中的 customerIDFieldSpecified bool 类型成员?以及如何仅通过设置 customerIDField 来继续提供服务。
我希望我的代理类是这样的
public partial class Customer
{
private int customerIDField;
public int CustomerID
{ …Run Code Online (Sandbox Code Playgroud) 我有一个 ONVIF 网络摄像机。
我想从相机捕获图像,以便可以处理该图像并将其保存到文件系统。
我发现有一个 onvif api,它提供了一种GetSnapshotUri应该为我提供图像快照的方法:
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl
我设法通过添加服务引用来在 Visual Studio 中导入此 api:
如何构建一个客户端以GetSnapshotUri从此服务进行调用?
我有一个WSDL文件
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:TestWebService">
<soapenv:Header>
<urn:AuthenticationInfo>
<urn:userName>test</urn:userName>
<urn:password>test</urn:password>
<!--Optional:-->
<urn:authentication></urn:authentication>
<!--Optional:-->
<urn:locale></urn:locale>
<!--Optional:-->
<urn:timeZone></urn:timeZone>
</urn:AuthenticationInfo>
</soapenv:Header>
<soapenv:Body>
<urn:Pokupi>
<urn:Request_ID__c>000000000000141</urn:Request_ID__c>
</urn:Pokupi>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
我在Python中的代码如下:
#import zeep
from suds.client import Client
from suds import WebFault
from suds.sax.element import Element
url = 'http://bmc2012.comtrade.co.yu:8080/arsys/WSDL/public/BMC2012/TestWebService'
user = "test"
password = "test"
ssnp = Element("xsi:AuthenticationInfo").append(Element('xsi:userName').setText(user))
ssnp = Element("xsi:AuthenticationInfo").append(Element('xsi:password').setText(password))
client = Client(url)
client.set_options(soapheaders=ssnp)
record = client.factory.create('Pokupi')
result = client.service.Pokupi(record)
print result
#client = zeep.Client(url)
#print (client.service.Pokupi('000000000000141'))
Run Code Online (Sandbox Code Playgroud)
我没有得到响应的数据,而是不断收到错误消息:必须在控制记录中提供用户名
我同时尝试了zeep和suds库,但无法传递此消息。当我在SOPA UI内执行此调用时,没有任何错误。有什么想法我做错了吗?
我正在寻找开发一个 C# 应用程序,该应用程序使用 AS4 将消息发布到 ebMS3 平台。我是这个领域的新手。有人可以帮忙吗?有没有第三方库可以轻松做到这一点?如果没有,我们如何使用 ac# 解决方案中的 AS4 发布消息。
我正在使用 Spring Boot 2.0.1 来构建合同优先的 Web 服务。
我遵循了 Spring-boot 示例示例 -
https://spring.io/guides/gs/production-web-service/。
这工作得很好。
我的 wsdl 现在位于
http://localhost:8080/ws/countries.wsdl
Run Code Online (Sandbox Code Playgroud)
问题是将成为此 Web 服务使用者的应用程序需要将 wsdl url 写为
http://localhost:8080/ws/countries?wsdl
Run Code Online (Sandbox Code Playgroud)
根据帖子,我集成了 turkey UrlRewriteFilter How to use Tuckey urlrewrite in spring boot to access service using ?wsdl
但是,URL 重写没有按预期发生。我的urlrewrite.xml看起来像这样。从日志中我发现它正在获取 xml 文件但没有进行 url 重写。我哪里错了?
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<from>/countries?wsdl</from>
<to>/countries.wsdl</to>
</rule>
</urlrewrite>
Run Code Online (Sandbox Code Playgroud)