不太理解https.get()怎么加入headers?
 发布于 9 年前  作者 smarttang  5240 次预览  最后一次回复是 9 年前  来自 问答 

我看了下api貌似没有讲。。。

const https = require('https');

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

https.get({host:'https://10.*.*.*:8183/',headers:{'user-agent':'fuckoude'}},(res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
  	console.log('..');
    // process.stdout.write(d);
  });

}).on('error', (e) => {
  console.error(e);
});
9 回复
smarttang

@i5ting 认真的扫了一下,感觉这个跟我的需求不搭啊。。。我是在client发起请求,不是做webserver。。。

i5ting

@smarttang 这样,你用request模块

wssgcg1213

https.request(options, callback)

const https = require('https');

var options = {
  hostname: 'encrypted.google.com',
  headers: {
    // 你要的header
  },
  port: 443,
  path: '/',
  method: 'GET'
};

var req = https.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});
req.end();

req.on('error', (e) => {
  console.error(e);
});
wssgcg1213

https.get 本身就是对 https.request 方法的一个包装

smarttang

@i5ting 额。。这个是异步的,我要同步请求。。。。

smarttang

@wssgcg1213 这个也是异步请求。。。 虽然自己已经实现了,但是还是特别感谢你回复。。。 我的整个笔记在这:http://www.jianshu.com/p/dd5d6b77f1e7

wssgcg1213

同步请求和异步请求的本质没区别呀,用 promise 就搞定了。。。。

smarttang

@wssgcg1213 这个模块在centos 6.5 安装不太友好。。