gpt4 book ai didi

c# - 如何拦截来自 WCF 客户端的 header ...?

转载 作者:行者123 更新时间:2023-11-30 21:10:00 25 4
gpt4 key购买 nike

因此,我使用了为我提供的 wsdl 来为 WCF 生成我所有的基本客户端代码。当我尝试与该服务通信时,出现错误。该错误表示绑定(bind)的内容类型与响应消息的内容类型不匹配。

启动 Fiddler 后,我查看了传出和传回的原始数据。事实证明,我试图与之交谈的 Magento 服务器返回了两个 Content-Type 值。同样,使用 Fiddler,我强制仅使用一种 Content-Type 对我的客户端进行响应,并且效果很好。

现在,我只想让 Magento 服务器正确响应,因为这将是解决此问题的“正确”方法。但是,这是我无法控制的(不同的公司不想修复它)。因此,我需要在 WCF 获取 header 时拦截 header 并让它忽略重复项。在互联网上搜索了一段时间后,我仍在尝试找出执行此操作的“最佳”方法。或就此而言,以“任何”方式做到这一点。

任何人都能够指出我要覆盖的正确内容以及我需要做什么来删除多余的 Content-Type?

最佳答案

你应该能够实现 IClientMessageInspector AfterReceiveReply 中操作和删除从 Magento 服务器收到的响应中多余的 Content-Type方法。

编辑:

因此您可以通过 HttpResponseMessageProperty 访问接收到的响应中的 HTTP header 在

中可用
void IClientMessageInspector.AfterReceiveReply(ref Message reply, Object correlationState)
{
var prop =
reply.Properties[HttpResponseMessageProperty.Name] as HttpResponseMessageProperty;

if (prop != null)
{
// get the content type headers
var contentType = prop.Headers["Content-Type"];
}
}

但是, Content-Type appears to be a restricted header 。或许稍加思考就可以解决这个问题,但希望这能给您一些想法。

关于c# - 如何拦截来自 WCF 客户端的 header ...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com