c# - 如何通过 HttpWebRequest 传递 API_KEY

标签 c# curl

我正在尝试发送传递一些 header 和身份验证信息的 curl 请求。

我想发送的所有信息都已成功发送,但我仍然不知道如何发送应该使用的 api key ,而不是正常的用户名/密码方式。

当我使用在线 curl 网站发送 curl 请求时,我将 : 放在 api key 之后,然后一切正常。

这就是我想在 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);

请帮忙?

最佳答案

您应该将授权放在 header 中,这样:

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

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

Authorization: <type> <credentials>

关于c# - 如何通过 HttpWebRequest 传递 API_KEY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40402782/

相关文章:

c# - .NET Web 服务 - 如何调用非托管 C dll

php - cURL 获取带有 utf-8 BOM 的响应

c++ - 如何正确删除指向回调函数的指针。

curl - 使用 CouchDB 进行基本身份验证

ubuntu - 更新到 PHP7 并使用新的 php.ini 文件创建新文件夹后如何获取旧的 php.ini 设置

c# - 如何检测行首,或 : "The name ' getCharPositionInLine' does not exist in the current context"

c# - 我的数据库插入方法插入空值而不是填充值 C#

java - 避免嵌套 if for null 和参数条件

c# - 在 C# 和 ASPX 的 ASP.Net 控件中创建属性

PHP Facebook SDK如何在没有 token 的情况下获取图形API