MCPcopy
hub / github.com/chavyleung/scripts / post

Method post

Env.js:468–569  ·  view source on GitHub ↗
(request, callback = () => {})

Source from the content-addressed store, hash-verified

466 }
467
468 post(request, callback = () => {}) {
469 const method = request.method
470 ? request.method.toLocaleLowerCase()
471 : 'post'
472
473 // 如果指定了请求体, 但没指定 `Content-Type`、`content-type`, 则自动生成。
474 if (
475 request.body &&
476 request.headers &&
477 !request.headers['Content-Type'] &&
478 !request.headers['content-type']
479 ) {
480 // HTTP/1、HTTP/2 都支持小写 headers
481 request.headers['content-type'] = 'application/x-www-form-urlencoded'
482 }
483 // 为避免指定错误 `content-length` 这里删除该属性,由工具端 (HttpClient) 负责重新计算并赋值
484 if (request.headers) {
485 delete request.headers['Content-Length']
486 delete request.headers['content-length']
487 }
488 // followRedirect 禁止重定向
489 if (
490 typeof request.followRedirect !== 'undefined' &&
491 !request['followRedirect']
492 ) {
493 if (this.isSurge() || this.isLoon()) request['auto-redirect'] = false // Surge & Loon
494 if (this.isQuanX())
495 request.opts
496 ? (request['opts']['redirection'] = false)
497 : (request.opts = { redirection: false }) // Quantumult X
498 }
499 switch (this.getEnv()) {
500 case 'Surge':
501 case 'Loon':
502 case 'Stash':
503 case 'Shadowrocket':
504 case 'Egern':
505 default:
506 if (this.isSurge() && this.isNeedRewrite) {
507 request.headers = request.headers || {}
508 Object.assign(request.headers, { 'X-Surge-Skip-Scripting': false })
509 }
510 $httpClient[method](request, (err, resp, body) => {
511 if (!err && resp) {
512 resp.body = body
513 resp.statusCode = resp.status ? resp.status : resp.statusCode
514 resp.status = resp.statusCode
515 }
516 callback(err, resp, body)
517 })
518 break
519 case 'Quantumult X':
520 request.method = method
521 if (this.isNeedRewrite) {
522 request.opts = request.opts || {}
523 Object.assign(request.opts, { hints: false })
524 }
525 $task.fetch(request).then(

Callers 15

initFunction · 0.45
runScriptMethod · 0.45
msgMethod · 0.45
signFunction · 0.45
initFunction · 0.45
initFunction · 0.45
initFunction · 0.45
signappFunction · 0.45
initFunction · 0.45
initFunction · 0.45
initFunction · 0.45
initFunction · 0.45

Calls 5

isSurgeMethod · 0.45
isLoonMethod · 0.45
isQuanXMethod · 0.45
getEnvMethod · 0.45
initGotEnvMethod · 0.45

Tested by

no test coverage detected