【发布时间】:2017-05-30 02:27:53
【问题描述】:
我想编写一个 PHP 代码来将身份验证和数据发送到 Web 服务。 请参阅下面的 Web 服务 SOAP XML 结构:
这是访问 Web API 的 URL https://portal.xyzonline.com/API/ABCAPIServer.asmx?WSDL
如果您能帮助我编写基本代码,我将不胜感激。
这就是我想要做的:
PHP 代码
$client = new SoapClient("https://portal.xyzonline.com/API/ABCAPIServer.asmx?WSDL");
$params = array(
'addCaseReq' => array(
'DlcpmCase' => array(
'CaseID' => '1234',
'CustomerID' => '222',
'PatientFirst' => 'John'
),
'Auth' => array(
'AppName' => 'appname',
'UserName' => 'username',
'Password' => 'password'
)
)
);
try {
$responsetest = $client->AddCase(new SoapParam(array($params)));
} catch(SoapFault $fault) {
print_r($fault);
}
XML
<wsdl:types>
<s:schema>
<s:element name="AddCase">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="addCaseReq" type="tns:ABCAPIAddCaseRequest"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ABCAPIAddCaseRequest">
<s:complexContent mixed="false">
<s:extension base="tns:ABCAPIRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AbcCase" type="tns:ABCCase"/>
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="ABCAPIRequest" abstract="true">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Auth" type="tns:ABCAPIAuthentication"/>
</s:sequence>
</s:complexType>
<s:complexType name="ABCAPIAuthentication">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AppName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
</s:sequence>
</s:complexType>
<s:complexType name="ABCCase">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CaseID" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="CaseNumber" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="CustomerID" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PatientFirst" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
WCFStorm 截图
我正在使用 WCFStorm,一切正常。请看截图:
【问题讨论】:
-
你能说一个更具体的问题吗?您的问题中有一些代码 - 如果它不起作用,您能解释一下什么不起作用吗?
-
@GrishaLevit,感谢您的回复。我正在尝试通过身份验证将数据发送到 Web 服务,您可以看到上面的屏幕截图,如果我通过身份验证和数据,我将成功发送数据,但在我上面的 PHP 代码中,没有提交信息。看来我的 PHP 代码并没有真正提交基于 XML 结构的数据
-
是否安装并启用了 php soap 扩展? stackoverflow.com/questions/22594582/…
标签: php web-services soap wsdl