Web服务包含其他字符串标记

时间:2010-07-09 15:59:52

标签: .net response web-services

我正在收到如下的网络服务回复。它在响应中有额外的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?

4 个答案:

答案 0 :(得分:1)

  他们说这是网络   服务标准

我建议您切换服务提供商: - )

如果不这样做,除非您的服务提供商没有为您提供能够解析此标准的API,否则长时间和痛苦的字符串操作都在等待您。

答案 1 :(得分:0)

重复<?xml version="1.0" encoding="UTF-8"?>

如果服务给你答案,他们就有错误。

  1. 如果可以,请使用其他服务。
  2. 如果不能,您可以随时从XML中删除它,然后再处理它。

答案 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>

这样的回复