本文介绍了如何在SuperAgent的每个请求中注入自定义HTTP标头?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

显然,支持自定义HTTP标头:

Clearly SuperAgent supports custom HTTP headers:

request
   .post('/api/pet')
   .send({ name: 'Manny', species: 'cat' })
   .set('X-API-Key', 'foobar')
   .set('Accept', 'application/json')
   .end(function(err, res){
     if (res.ok) {
       alert('yay got ' + JSON.stringify(res.body));
     } else {
       alert('Oh no! error ' + res.text);
     }
   });

我的问题:


  • 如果我通过npm下拉SuperAgent,我怎样才能在SuperAgent的所有请求中注入我自己的HTTP头?

  • 注意:我完全愿意创建一个新的npm包,如有必要,可以扩展SuperAgent。

推荐答案

我只是制作一个单独的模块用这样的东西:

I'd just make a separate module with something like this:

var superagent = require('superagent');

var defaultHeaders = {};
function isObject(obj) { return Object(obj) === obj; };

function request(method, url) {
   return superagent(method, url).set(defaultHeaders);
}

request.set = function (field, value) {
   if (isObject(field)) {
      for(var key in field) this.set(key, field[key]);
      return this;
   }
   defaultHeaders[field] = value;
   return this;
}
module.exports = request;



用法



Usage

var request = require('./myagent');
request.set({'X-My-Header': 'foo'}); // sets the default

request.get('/bar').send() // will send the default header

模块的行为与superagent相同,但在返回 Request 对象之前设置默认标头。请参阅

The module behaves the same way as superagent but sets default headers before returning the Request object. See here

这篇关于如何在SuperAgent的每个请求中注入自定义HTTP标头?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 15:45