【问题标题】:The right way to construct HTTP request to API in Nodejs and Express在 Nodejs 和 Express 中构造对 API 的 HTTP 请求的正确方法
【发布时间】:2017-10-19 15:52:03
【问题描述】:

我对 HTTP 完全陌生,并试图发出 HTTP 请求。这是 API:

我这样构造请求:

let reqString = 'GET https://login.yandex.ru/info?format=json&with_openid_identity=1 HTTP/1.1\r\n' +
          'Authorization: OAuth ' + this.token;

这是错误:

Error: Invalid URI "GET%20https://login.yandex.ru/info?format=json&with_openid_identity=1%20HTTP/1.1%0D%0AAuthorization:%20OAuth%20AQAAAAAc3LKEAAQQaS1B6d6nz0B8mq_kOr-AD6M"

我对 HTTP 和后端完全陌生,请解释我做错了什么并告诉我正确的方法

提前致谢

【问题讨论】:

  • 正如错误试图告诉你的那样,这个函数接受一个 URL,而不是一个请求。
  • 从 URL 中删除 GET
  • 不太确定这一行代码是如何导致错误的 - 也许您可以尝试展示您真正在做什么
  • @guest271314 - 并删除HTTP/1.1\r\n,并将标头设置为标头,而不是作为请求的一部分......并且......好吧,可能还有更多错误
  • @JaromandaX,请告诉我,如何将标头设置为标头

标签: javascript node.js http express


【解决方案1】:

我的情况的解决方案是创建对象并像这样发出 HTTP 请求:

const request = require('request');

let reqobj = {
        uri: 'https://login.yandex.ru/info?format=json&with_openid_identity=1 HTTP/1.1',
        headers: {
          'Authorization': 'OAuth ' + this.token
        }
      };

request(reqobj, (error, response, body) => {...}

感谢cmets的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2019-06-26
    • 2021-12-16
    • 2021-10-07
    相关资源
    最近更新 更多