# 基础用法

可以通过在 request 对象上调用适当的方法来发起请求,然后调用 .then() (或 .end()await) 发送请求。

例如一个简单的__GET__请求:

request
  .get('/search')
  .then(res => {
     // res.body, res.headers, res.status
  })
  .catch(err => {
     // err.message, err.response
  });

HTTP 方法也可以作为字符串传递:

request('GET', '/search').then(success, failure);

还支持老式的回调方式,但不建议使用。可以调用 .end() 来代替 .then()

request('GET', '/search').end(function(err, res){
  if (res.ok) {}
});

可以使用绝对 URL,在 Web 浏览器中,仅当服务器实现 CORS 时,绝对 URL 才起作用。

request
  .get('https://example.com/search')
  .then(res => {

  });

Node 客户端支持向 Unix Domain Sockets 发出请求:

// pattern: https?+unix://SOCKET_PATH/REQUEST_PATH
//          Use `%2F` as `/` in SOCKET_PATH
try {
  const res = await request
    .get('http+unix://%2Fabsolute%2Fpath%2Fto%2Funix.sock/search');
  // res.body, res.headers, res.status
} catch(err) {
  // err.message, err.response
}

DELETEHEADPATCHPOSTPUT 类的请求同样可以使用。

request
  .head('/favicon.ico')
  .then(res => {

  });

DELETE 请求也可以通过 .del() 的方式调用,以兼容旧的 IE。注意,是 del 不是 delete,因为 delete 是保留字段。

HTTP 方法默认为 GET,因此,下面的请求是一个有效的 GET 请求:

request('/search', (err, res) => {

});