将自定义Http标头添加到Web服务代理

Ric*_*ahl 12 soap web-services asmx

我有一个旧的应用程序,它使用经典的Web服务代理与Java Web服务进行交互.不久之后,Web Service托管商决定要求为每个请求发送自定义HTTP标头以访问服务 - 否则请求将被彻底抛弃(看起来这是某种路由器要求).无论我需要在请求中注入自定义HTTP标头的原因是什么.

有没有办法与实际的Http客户端进行交互来执行添加自定义标头的操作?

Joh*_*ers 20

您应该能够通过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;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Jack - 您可以将上述代码添加到新的类文件中(或者如果您知道不会将服务重新生成到生成的服务类文件中).它实际上是对生成的代理类的覆盖.只需确保类名和命名空间与生成的代理类相同. (2认同)