无效的xml响应

时间:2012-10-29 22:14:43

标签: c# json visual-studio-2008 webservice-client

我正在连接到新的网络服务。使用Visual-Studio添加服务引用,我的方法调用为:

void Method(string request);

问题是web服务发送响应,因此void应该是一个字符串?因为我收到响应的无效XML错误。使用 Fiddler 我可以看到响应为:

{"errorcode": "000","errormsg": "Alert Added."}<?xml version="1.0" encoding="utf-8"?><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"><soap:Body><AlertResponse xmlns="http://www.quit.com/" /></soap:Body></soap:Envelope>

显然,在XML之前使用Json响应是无效的XML。如何以不同方式调用/设置服务以获得响应结果?

1 个答案:

答案 0 :(得分:0)

这是一个void方法,但它不是一个单向方法,所以服务器会发送一个响应,但它将是一个空元素,就像你的情况一样:

<soap:Body>
    <AlertResponse xmlns="http://www.quit.com/" />
</soap:Body>

服务器确实发送了响应,因为即使在void方法的情况下,还有其他可能的“响应”可以返回 - 例如是异常(或错误 ,以SOAP术语表示。)

但是,您正在与之交谈的服务发送的回复无效。如果您不拥有该服务,并且仍然需要使用它,那么您可能需要考虑创建一个自定义编码器,该编码器能够在尝试使用它之前从响应中删除该无关的JSON片段。