1

我在使用 WCF 使用 PHP Web 服务时遇到问题。首先,我尝试通过“添加服务引用”创建一个代理类,但这不起作用:

在此处输入图像描述

完整的错误信息:

There was an error downloading 'http://xxx.yyy.zzz.pl/Swdsoapserver/query?wsdl/_vti_bin/ListData.svc/$metadata'.
The request failed with the error message:
--
<?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><faultcode>Sender</faultcode><faultstring>Invalid XML</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

--.
Metadata contains a reference that cannot be resolved: 'http://xxx.yyy.zzz.pl/Swdsoapserver/query?wsdl'.
The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xxx.yyy.zzz.pl/Swdsoapserver/query" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="SwdQuerySoap"
    targetNamespace="http://xxx.yyy.zzz.pl/Swdsoapserver/query">
    <wsdl:types>
        <xsd:schema 

我和一个用 php 托管这个 web 服务的人交谈,他说我,他以这样的方式使用这个 web 服务:

$Http = new Zend_Controller_Request_Http();
       $client = new SoapClient("http://".$Http->getServer('HTTP_HOST')."/Swdsoapserver/queryko?wsdl", array        ('trace'         => true));
       $object->sy = "12345678";
       $client->getParcel($object, base64_encode('xyzxyz'));

这个 base64_encode('xyzxyz') 是连接所需的哈希。

任何建议如何在 C# .NET 中使用此服务?

编辑:来自 IE 的屏幕: IE1 IE2 IE3

编辑:将文件保存在磁盘上并添加到 Visual Studio(还有我的另外 2 个 wcf 服务) 在此处输入图像描述

4

1 回答 1

1

首先,您应该在您最喜欢的导航器中浏览 WSDL。将文件保存在本地计算机上。

第 2 步,您必须对此文件进行服务引用。它通常会在您的项目中为您的 PHP Web 服务创建一个客户端 (WCF)。

最后一步,您只需在 WCF 中实例化一个客户端。

于 2013-10-09T19:51:36.300 回答