2011-01-11 129 views
2

我正在向Web服务提交请求,但我收到一些错误。他们要求查看xml请求和响应的示例。我使用Visual Studio来使用Web服务,所以我只是在我的代码中调用一个方法 - 我实际上没有看到任何xml。获取xml web服务请求

有没有办法以XML或至少一个文本字符串抓取XML请求和响应?

感谢

+0

这是一个Web引用或服务引用? – 2011-04-04 21:55:22

回答

3

最简单的方法是使用第三方工具,如Fiddler。无论如何,你会很高兴你开始使用这个工具。

+0

你以前做过吗?我正在阅读教程(其中大部分过时),但他们没有帮助。 – 2011-01-11 20:26:05

0

你可以使用Fiddler

+1

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – Matthieu 2012-08-16 17:31:52

+0

@Matthieu,伙计,这就像问,'从哪里下载谷歌浏览器?`并提供一个指向`http:// google.com`的答案,并且您告诉我要提供更多描述?来吧,是认真的。 – 2012-08-16 17:35:41

0

我不得不调试一下最近发生的事情,wireshark和fiddler等工具是调试请求和响应的很好工具,除非您使用的是HTTPS,或者您正在本地计算机上调试并执行客户端和Web本地服务。

我发现了一种方法,可以让您查看请求和响应的细节,而无需修改代码的单行。

.NET有一个内置的被称为跟踪的功能。通过启用System.NET命名空间的跟踪,您可以捕获所有内容。

以下是启用的步骤。

将以下代码添加到您的客户端应用程序的app.config中。现在

<system.diagnostics> 
<trace autoflush="true" /> 
<sources> 
    <source name="System.Net"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add name="System.Net" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="System.Net.trace.log" /> 
</sharedListeners> 
<switches> 
    <add name="System.Net" value="Verbose" /> 
</switches> 
</system.diagnostics> 

,当你执行你的客户端应用程序,你可以进入你的可执行文件从运行文件夹,找到该文件System.Net.trace.log

你会再找到日志文件的请求和服务器响应。关于这个解决方案的好处是你不必安装或运行任何额外的东西。然而,解决方案可能只是在测试或舞台环境中开发或诊断某些东西而不是生产的解决方案。不过,我假设你是因为你提到了在Visual Studio中创建解决方案,并且它不工作,因此你很清楚正处于开发阶段。