json - 经典 ASP xmlhttp 获取如何为 sendgrid api 添加身份验证

标签 json asp-classic xmlhttprequest sendgrid

我正在尝试通过他们的 API 从我的 SendGrid 帐户获取数据。我正在使用经典的 ASP。我发现some code that works除了我需要为 SendGrids API 添加授权,如所述 in their documentation .

我发现几个例子似乎表明我需要在 xmlhttp.open 之后和 xmlhttp.send 之前添加 xmlhttp.setRequestHeader 但是当我取消注释下面的行“xmlhttp.setRequestHeader”时,我在我的文件中收到 500 错误浏览器。现在谁能告诉我将授权部分添加到 xmlhttp 对象中?

为清楚起见进行编辑:当我注释“xmlhttp.setRequestHeader...”行时,脚本运行并返回预期的 json 结果,表明我需要进行身份验证。当我取消注释该行时,我收到 500 错误。我已在下面的代码中用通用占位符替换了我的工作 api key (使用 cURL 命令进行测试)。真正的 key 位于我服务器上的文件中。

这是我正在使用的代码:

<%@ Language=VBScript %>
<%
Set xmlhttp = CreateObject("Msxml2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", "https://api.sendgrid.com/v3/campaigns?limit=10&offset=0 HTTP/1.1", false
'xmlhttp.setRequestHeader "Authorization", "Bearer my-correct-sendgrid-api-key"
xmlhttp.send ""
Response.AddHeader "Content-Type", "application/json;charset=UTF-8"
Response.Charset = "UTF-8"
pageReturn = xmlhttp.responseText

Set xmlhttp = Nothing 
response.write pageReturn
%>

看来基础知识正在发挥作用,因为上面的代码返回了预期的 json 结果,错误消息表明我需要进行身份验证:

{
    errors: [
        {
        field: null,
        message: "authorization required"
        }
    ]
}

SendGrids 文档使用此示例:

GET https://api.sendgrid.com/v3/resource HTTP/1.1
Authorization: Bearer Your.API.Key-HERE

最佳答案

谢谢大家!信用归Kul-Tigin指出我的错误,该错误误解了 SendGrids 示例中 URL 的一部分的注释“HTTP/1.1”。

当我改变时:

xmlhttp.open "GET", "https://api.sendgrid.com/v3/campaigns?limit=10&offset=0 HTTP/1.1", false
xmlhttp.setRequestHeader "Authorization", "Bearer my-correct-sendgrid-api-key"

至:

xmlhttp.open "GET", "https://api.sendgrid.com/v3/campaigns?limit=10&offset=0", false
xmlhttp.setRequestHeader "Authorization", "Bearer my-correct-sendgrid-api-key"

它开始工作,没有错误。这是工作代码:

<!-- language: lang-js -->
<%@ Language=VBScript %>
<%
Set xmlhttp = CreateObject("Msxml2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", "https://api.sendgrid.com/v3/campaigns?limit=10&offset=0", false
xmlhttp.setRequestHeader "Authorization", "Bearer my-correct-sendgrid-api-key"
xmlhttp.send ""
Response.AddHeader "Content-Type", "application/json;charset=UTF-8"
Response.Charset = "UTF-8"
pageReturn = xmlhttp.responseText

Set xmlhttp = Nothing 
response.write pageReturn
%>

SearchAndResQ我将阅读您提供的有关错误捕获的链接。谢谢!

关于json - 经典 ASP xmlhttp 获取如何为 sendgrid api 添加身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669768/

相关文章:

c# - 为 64 位操作系统包装 32 位 dll 以与 regsvr32.exe 一起使用

javascript - 每 x 秒多个 XmlHttpRequest

javascript - JavaScript 中的 JSON 编码/解码 base64 编码/解码

json - 无法验证架构并正确使用 additionalProperties

asp-classic - 参数化查询中的 ASP 经典命名参数 : Must declare the scalar variable

php - 如何将下载计数器附加到我的 HTML 下载按钮?

asp.net - XHR statusText未设置

javascript - XMLHttpRequest 响应在 Javascript 中为 null

json - 如何从 java 客户端使用 JSON Webservice?

javascript - 如何根据输入的json动态加载html元素?