gpt4 book ai didi

c# - 为 http ://user:password@doamin/query Url 创建一个 HttpWebRequest

转载 作者:太空狗 更新时间:2023-10-29 20:40:19 26 4
gpt4 key购买 nike

我需要将 HttpWebRequest 发送到具有基本内联凭据的 url,如下所示:

http://user:password@doamin/query

我试过按原样设置 Url,但它似乎没有通过凭据(得到 403)。
尝试设置 HttpWebRequest 的 Credentials 属性:

request.Credentials = new NetworkCredentials("username","pasword")

并从 url 中删除它们(导致 http://domain/query)但仍然得到相同的结果 (403)。

直接从任何浏览器使用 Url 成功,因此凭据正常。

我错过了什么?

[更新 - 答案]
这是对我有用的代码:

string credentials = "username:password";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(formattedUrl);
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

最佳答案

首先你创建你的 creds 类:

NetworkCredential myCred = new NetworkCredential("username", "password");

将它添加到您的 Creds 缓存中:

CredentialCache credsCache = new CredentialCache();

// NOTE! THE PROTOCOL is needed in Uri (e.g. http://)
credsCache.Add(new Uri("proto://www.foo.com"), "Basic", myCred);

现在你可以做一个网络请求:

WebRequest wr = WebRequest.Create("www.foo.com");

然后将 wr.Credentials 设置为 credsCache:

wr.Credentials = credsCache;

关于c# - 为 http ://user:password@doamin/query Url 创建一个 HttpWebRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643746/

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