-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathHttpRequest.js
More file actions
48 lines (43 loc) · 1.38 KB
/
HttpRequest.js
File metadata and controls
48 lines (43 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
'use strict';
var URL = require('url');
var needle = require('needle');
needle.defaults({
follow: 3,
compressed: true,
parse_response: false,
decode_response: true,
follow_set_cookies: true,
follow_set_referer: true
})
function HttpRequest(window, url, callback) {
if (url.substr(0, 2) === '//')
url = window.location.protocol+url;
if (typeof url === 'string')
url = URL.parse(url);
var method = url.method||'get';
var href = URL.format(url);
if (url.host === null || url.protocol === null)
href = URL.resolve(window.location.href, href);
var data = url.data;
var opts = {
proxy: url.proxy,
timeout: url.timeout||30*1000,
user_agent: url.user_agent||window.navigator.userAgent,
//headers: url.headers,
headers: {
referer: url.referer||window.location.href,
},
cookies: window.document.cookies,
accept: url.accept,
rejectUnauthorized: false
}
window.__stackPush();
window.alert('[libxmljs-dom] '+method+' '+href);
needle.request(method, href, data, opts, function(err, res, data) {
if (res !== undefined && res.cookies !== undefined)
window.document.cookies = res.cookies;
callback(err, res, data);
window.__stackPop();
})
}
module.exports = HttpRequest;