0

我正在连接到一个新的网络服务。使用 Visual-Studio 添加服务参考,我的方法调用如下:

void Method(string request);

问题是网络服务发送了一个响应,所以 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 是无效的。如何以不同的方式调用/设置服务以获得响应结果?

4

1 回答 1

0

这是一个 void 方法,但它不是单向方法,因此服务器将发送响应,但它将是一个空元素,如您的情况:

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

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

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

于 2012-10-29T22:45:01.690 回答