gpt4 book ai didi

c# - HttpClient在c#中将Host和UserAgent添加到请求中

转载 作者:行者123 更新时间:2023-11-30 17:33:30 34 4
gpt4 key购买 nike

我必须在我的请求中添加主机和用户代理,但没有像“主机”或“用户代理”这样的功能

没有主机我没有授权..“WebException:远程服务器返回错误:(401) 未经授权。”我的代码:

var webRequest = WebRequest.Create(url) as HttpWebRequest;
if (webRequest != null)
{
webRequest.Accept = "*/*";
webRequest.UserAgent = ".NET";
webRequest.Method = WebRequestMethods.Http.Post;
webRequest.ContentType = "application/json";
webRequest.Host = "coinbase.com";

var whc = new WebHeaderCollection
{
"ACCESS_KEY: " + API_KEY,
"ACCESS_SIGNATURE: " + signature,
"ACCESS_NONCE: " + nonce
};
webRequest.Headers = whc;

using (WebResponse response = webRequest.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
returnData = reader.ReadToEnd();
}
}
}

我的代码屏幕: screen

最佳答案

用行“webRequest.Accept = "/";"等等 你实际上在 webRequest.Headers 集合中设置了值。然后用行“webRequest.Headers = whc;”你基本上覆盖了整个集合。您应该像这样添加自定义 header :

var webRequest = WebRequest.Create("http://google.com") as HttpWebRequest;
if (webRequest != null)
{
webRequest.Accept = "*/*";
webRequest.UserAgent = ".NET";
webRequest.Method = WebRequestMethods.Http.Post;
webRequest.ContentType = "application/json";
webRequest.Host = "coinbase.com";

webRequest.Headers.Add("ACCESS_KEY", API_KEY);
webRequest.Headers.Add("ACCESS_SIGNATURE", signature);
webRequest.Headers.Add("ACCESS_NONCE", nonce);

//...
}

当我对此进行调试时,我在 webRequest.Headers 集合中看到了所有必需的 header ,但缺少主机。如果我添加它然后得到错误说明我应该使用“webRequest.Host”设置 header 而不是直接在 header 集合中。我不知道这是一个错误还是它应该像这样工作......也许这根本不会打扰你。

关于c# - HttpClient在c#中将Host和UserAgent添加到请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782918/

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