我正在收到如下的网络服务回复。它在响应中有额外的XML标记和字符串标记。我无法将此响应加载到Dot Net中的XMLDocument对象中。我已经要求Web服务提供商在发送响应之前删除这些标记。但是他们说这是网络服务标准。是Web服务假设发送响应的方式吗?
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"><?xml version="1.0" encoding="UTF-8"?><?ACORD version="1.7.0"?>
<ACORD><InsuranceSvcRs></InsuranceSvcRs></ACORD></string>
以下是调用Web服务的代码
using (var webClient = new WebClient())
{
webClient.Credentials = Credentials;
byte[] responseArray;
NameValueCollection postValues = GetParameters();
responseArray = webClient.UploadValues(GetUploadURL(), "POST", postValues);
responseString = Encoding.ASCII.GetString(responseArray);
}
由于我使用的是WebClient(不是Web服务代理),Web客户端类是否会像这样格式化响应?
编辑:当我尝试使用上面代码的示例HelloWorld webservice时,我得到了这样的响应
<?xml version=\"1.0\" encoding=\"utf-8\"?><string xmlns=\"http://tempuri.org/\">Hello World</string>
话虽如此,我正在重新讨论我的问题是当webservice假设发送响应时,客户端代理POST到webservice?
答案 0 :(得分:1)
他们说这是网络 服务标准
我建议您切换服务提供商: - )
如果不这样做,除非您的服务提供商没有为您提供能够解析此标准的API,否则长时间和痛苦的字符串操作都在等待您。
答案 1 :(得分:0)
重复<?xml version="1.0" encoding="UTF-8"?>
如果服务给你答案,他们就有错误。
答案 2 :(得分:0)
嘿伙计们,谢谢你的回复。由于我使用WebClient类发布到他们的webservice,响应内容确实包含“String”标记。但是,如果我使用Web服务代理,.net确实会提取内容并为我们删除字符串标记。所以响应是Web服务标准。当我使用示例服务进行测试时,我得到了这样的响应
<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<string xmlns=\"http://tempuri.org/\">Hello World</string>
答案 3 :(得分:0)
是的,你是对的John Saunders。正如我在之前的回答中所说的,.Net没有做任何事情。当我发布与使用代理时,响应本身不同。
当我使用代理时,我得到了像肥皂<HttpResponse>
<StatusCode>OK</StatusCode>
<StatusDescription>OK</StatusDescription>
<WebHeaders>
<Content-Length>363</Content-Length>
<Cache-Control>private, max-age=0</Cache-Control>
<Content-Type>text/xml; charset=utf-8</Content-Type>
<Date>Mon, 12 Jul 2010 20:01:17 GMT</Date>
<Server>Microsoft-IIS/6.0</Server>
<X-AspNet-Version>2.0.50727</X-AspNet-Version>
<X-Powered-By>ASP.NET</X-Powered-By>
</WebHeaders>
</HttpResponse>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"></s:Header>
<soap:Body>
<HelloWorldResponse xmlns="http://tempuri.org/">
<HelloWorldResult>Hello World</HelloWorldResult>
</HelloWorldResponse>
</soap:Body>
</soap:Envelope>