c# - 在 C# 中记录 Soap 消息
问题描述
我有一个向 SOAP 服务发出请求的 C# 控制台程序。
SOAP 消息的这个接口是通过Microsoft.VSDesigner, Version 4.0.30319.42000.
以下步骤生成的:
- 右键参考文献
- 选择添加服务参考
- 选择高级
- 添加网络参考
- 输入我正在使用的 URL 或服务
- 为服务命名
- 单击添加参考。
那时我已经生成了调用服务的代码。
这是调用服务的片段:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.xxxxx.com/VerifyInsurance", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("CoverageResponseDocument", Namespace="http://www.xxxxx.com/CoverageVerification/")]
public CoverageResponseDocument VerifyInsurance([System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.xxxxx.com/CoverageVerification/")] CoverageRequest CoverageRequest)
{
object[] results = this.Invoke("VerifyInsurance", new object[] {
CoverageRequest});
return ((CoverageResponseDocument)(results[0]));
}
我可以更改哪些内容才能看到发送和接收的 SOAP 消息的确切字符串?
通过更改代码或更改配置。
我是一名长期开发人员,但对 Visual Studio 很陌生,所以我很感激使用我在屏幕上看到的术语的答案。
解决方案
嗨,需要注意的几点(虽然我接受了我无法更改代码以记录请求和响应的事实,但以下是我检查过的其他几个选项,您可以尝试) -
- 使用诊断(跟踪)获取原始请求响应
我遵循了相同的步骤并添加了服务参考并应用了诊断程序并能够在日志文件中记录原始请求响应 - 您可以在此处阅读有关跟踪的信息-
- 如果您有权访问您的 Web 服务代码,那么您可以编写 Soap Extensions。
所以 SOAPExtention 是
使用 ASP.NET 创建的 XML Web services 的 SOAP 扩展的基类。
扩展类提供处理原始请求和响应的细粒度细节。一种方法可以记录这些以跟踪日志文件供您检查。一个例子可以在这里找到-
- 另一种方法是在 Visual Studio 之外使用fiddler来监控 http 和 https 的流量
SO中有另一个线程在谈论同样的事情。请看一看。
从 ASP.net 中运行的 Web 参考客户端获取 RAW Soap 数据
下面的讨论更多的是使用 SOAP 代理。添加 Web 引用是引用客户端代理的旧方法。如果没有理由仅使用 Web 引用,则使用服务引用而不是 Web 引用。您可以在下面的线程中找到更多详细信息。
推荐阅读
- python - 无法以日期为索引绘制 MACD
- c# - CS0411 方法 xyz 的类型参数无法从用法中推断出来
- shopify - 当单击立即购买按钮时,我想在 Shopify 产品页面中设置注释属性
- php - 在 Laravel 中,如何为中间件中的所有输入过滤 reuqest 对象上的字符串?
- google-oauth - 尝试在 Google API 中为访问令牌交换授权码时出现“redirect_uri_mismatch”错误
- python - 仅替换匹配的单词
- xamarin.forms - 如何以用户可以找到的 xamarin 形式将文件写入内部存储
- java - KafkaConsumer.commitAsync() 行为具有比以前更低的偏移量
- go - 从 golang 连接到 rabbitmq 的 Uri 模式
- c# - ef core 为多个实体设置同一个值对象