codecamp

Moralis http请求

Moralis.Cloud.httpRequest

Moralis Dapp​ 包括 ​Moralis.Cloud.httpRequest​。 它允许您向任何 HTTP 服务器发送 HTTP 请求。 此函数采用选项对象来配置调用。

一个简单的 GET 请求如下所示:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'https://www.awesomewebsite.com/'
}).then(function(httpResponse) {
  // success
  logger.info(httpResponse.text);
},function(httpResponse) {
  // error
  logger.error('Request failed with response code ' + httpResponse.status);
});

Moralis.Cloud.httpRequest​ 返回一个promise,该promise将在成功的 HTTP 状态码上得到解决; 否则,promise 将被拒绝。 在上面的例子中,我们使用 then() 来处理这两个结果。

指定端口号的 GET 请求如下所示:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'https://www.awesomewebsite.com:8080/'
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

有效端口号为 80、443 以及从 1025 到 65535 的所有数字。

默认情况下,​Moralis.Cloud.httpRequest​ 不遵循由 HTTP 3xx 响应代码引起的重定向,可以使用 ​followRedirects: true​ 选项。

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'https://www.awesomewebsite.com/',
  followRedirects: true
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

查询参数

您可以通过在选项对象上设置参数来指定要附加到 URL 末尾的查询参数。 您可以传递键值对的 JSON 对象,例如:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'http://www.google.com/search',
  params: {
    q : 'Sean Plott'
  }
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

或者,像这样的原始String:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'http://www.google.com/search',
  params: 'q=Sean Plott'
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

设置标题

您可以通过设置选项对象的标头属性来发送 HTTP ​header​。 假设你想设置请求的 Content-Type,你可以这样做:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'http://www.example.com/',
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  }
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

发送 POST 请求

您可以通过设置选项对象的方法属性来发送发布请求。 可以使用 body 设置 POST 的正文。 一个简单的例子是:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  method: 'POST',
  url: 'http://www.example.com/create_post',
  body: {
    title: 'Vote for Pedro',
    body: 'If you vote for Pedro, your wildest dreams will come true'
  }
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

这将向 ​http://www.example.com/create_post​ 发送一个带有正文的帖子,该正文是 URL 表单编码的正文属性。 如果您希望对正文进行 JSON 编码,则可以这样做:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  method: 'POST',
  url: 'http://www.example.com/create_post',
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  },
  body: {
    title: 'Vote for Pedro',
    body: 'If you vote for Pedro, your wildest dreams will come true'
  }
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

为确保您的 HTTP 请求正文编码正确,请始终在您的内容类型标头中包含字符集。

后重定向

默认情况下,​Moralis.Cloud.httpRequest​ 不遵循由 HTTP 3xx 响应代码引起的重定向。 您可以使用 ​followRedirects ​选项更改此行为以遵循重定向:

const logger = Moralis.Cloud.getLogger();

Moralis.Cloud.httpRequest({
  url: 'http://www.example.com/',
  followRedirects: true
}).then(function(httpResponse) {
  logger.info(httpResponse.text);
}, function(httpResponse) {
  logger.error('Request failed with response code ' + httpResponse.status);
});

响应对象

传递给​success​和​error​的响应对象将包含:

  • status ​- HTTP 响应状态。
  • headers ​- 响应标头。
  • buffer ​- 响应正文的原始字节表示。
  • text ​- 原始响应正文。
  • data ​- 解析的响应,如果 Cloud Code 知道如何解析发送的内容类型。
  • cookies ​- 服务器发送的cookies。


Moralis 云函数
Moralis 触发器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Moralis 文件

Moralis 工具

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }