如何通过HttpWebRequest传递API_KEY

时间:2016-11-03 13:30:24

标签: c# curl

我尝试发送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);

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

您应该将授权放在标题中,以便:

httpWebRequest.Headers["Authorization"] = "Bearer " + apikey;

根据您联系的服务器,您必须确定输入。在我的情况下,Bearer应该放在apikey之前。 由于大多数服务器使用以下设置进行授权:

Authorization: <type> <credentials>