gpt4 book ai didi

c# - 将授权 header 添加到 Web 引用

转载 作者:可可西里 更新时间:2023-11-01 08:03:31 27 4
gpt4 key购买 nike

我正在尝试向客户端的网络服务发出请求(我不知道客户端的底层平台)。我使用“添加 Web 引用”在 Visual Studio 2010 中使用了客户端的 WSDL 并生成了我的代理类(称为“ContactService”)。

我现在需要向我的服务请求添加如下所示的授权 header 。

Header=Authorization & Value=Basic 12345678901234567890

(上面的“123456...”值只是占位符)

ContactService service = new ContactService();

//not sure if this is the right way - it's not working
WebClient client = new WebClient();
client.Headers.Add("Authorization", "Basic 12345678901234567890");
service.Credentials = client.Credentials;

int contactKey = null;
try
{
contactKey = service.CreateContact("ABC", emailAddress, firstName, lastName, null);
}

将授权 header 添加到服务请求的正确方法是什么?

谢谢!

最佳答案

上述响应是正确的,但它必须在不同的位置。

我将其添加到 .Net 生成的我的 Web 引用代理类中:

protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(uri);
req.Headers.Add(HttpRequestHeader.Authorization,
"Basic " + "12345678901234567890");

return req;
}

Web Reference 代理类扩展了 System.Web.Services.Protocols.SoapHttpClientProtocol。此类包含对 System.Net.WebRequest.GetWebRequest(Uri uri) 的调用。 WebRequest 允许我们在调用代理类的方法时在请求上设置特定的 header 。

感谢您的帮助!

关于c# - 将授权 header 添加到 Web 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488991/

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