2009-08-21 60 views
12

我有一个使用经典Web服务代理与Java Web服务进行交互的旧应用程序。一段时间后,Web服务主机决定要求为每个请求发送一个自定义HTTP头,以便访问该服务 - 否则请求将被彻底抛出(看起来像是某种路由器要求)。无论我需要在请求中注入自定义HTTP头的原因如何。将自定义Http标题添加到Web服务代理

有没有什么办法与实际的Http客户端进行交互来执行诸如添加自定义标头之类的事情?

+0

我碰到这个问题来了,当我们的IT实施的Apache的mod_security这是寻找接受头,并找到了最受赞赏的解决方案。 – 2013-01-07 23:11:49

回答

17

您应该可以通过在单独的文件中重写部分类中的代理类的GetWebRequest方法来执行此操作。调用基类方法后,你应该能够修改返回HttpWebRequest的,只要你喜欢,然后从方法返回它:

public partial class MyServiceProxy { 
    protected override WebRequest GetWebRequest(Uri uri) { 
     HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); 
     // do what you will with request. 
     return request; 
    } 
} 
+1

是这样做的。我通过代码bascially生成代理,并且我能够生成类并注入一些代码来添加标头,方法是添加一个Headers属性,该属性在GetWebRequest中进行检查并用于添加其他标头。 丑,但它很好! – 2009-08-21 07:15:18

+0

感谢您的解决方案。我如何将这个过程与我的Web服务客户端项目一起使用? – Jack 2010-06-02 09:16:05

+0

@Jack:这是Web服务客户端项目。另外,如果您有选择,最好使用WCF。 – 2010-06-02 18:29:31

相关问题