我尝试发送curl
请求传递一些标头和身份验证信息。
我想发送的所有信息都成功了,但我仍然坚持如何发送应该使用的api密钥而不是普通的用户名/密码方式。
当我使用在线curl
网站发送curl
请求时,我将:
放在api密钥后面,然后一切正常。
这就是我想在C#中使用HttpWebRequest
这是我用来执行此操作的代码:
string credentials = String.Format("{0}:{1}", "API_KEY", "GivenApiKey: ");
byte[] bytes = Encoding.ASCII.GetBytes(credentials);
string base64 = Convert.ToBase64String(bytes);
string authorization = String.Concat("Basic ", base64);
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.website.com/test");
httpWebRequest.ReadWriteTimeout = 100000;
httpWebRequest.ContentType = "application/json";
httpWebRequest.Accept = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.UserAgent = "GivenUserAgent";
httpWebRequest.Credentials = new NetworkCredential("Authorization", authorization);
请帮忙吗?
答案 0 :(得分:1)
您应该将授权放在标题中,以便:
httpWebRequest.Headers["Authorization"] = "Bearer " + apikey;
根据您联系的服务器,您必须确定输入。在我的情况下,Bearer应该放在apikey之前。 由于大多数服务器使用以下设置进行授权:
Authorization: <type> <credentials>