Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过代理服务器发出http请求(Google应用程序脚本/JavaScript)_Javascript_Http_Google Apps Script_Proxy - Fatal编程技术网

如何通过代理服务器发出http请求(Google应用程序脚本/JavaScript)

如何通过代理服务器发出http请求(Google应用程序脚本/JavaScript),javascript,http,google-apps-script,proxy,Javascript,Http,Google Apps Script,Proxy,我使用谷歌应用程序脚本(我们通常使用几乎原始的js,没有libs等)。 所以我需要使用代理服务器(需要动态更改ip地址) 但当我发出请求时,代理服务器会回叫 这是一个代理服务器。不响应非代理请求 通常,在google app scrip中发出http请求的方式如下: function make_some_request() { const url = 'https://www.google.com/'; var headers = { "Content-Type

我使用谷歌应用程序脚本(我们通常使用几乎原始的js,没有libs等)。 所以我需要使用代理服务器(需要动态更改ip地址)

但当我发出请求时,代理服务器会回叫

这是一个代理服务器。不响应非代理请求

通常,在google app scrip中发出http请求的方式如下:

 function make_some_request() {
  const url = 'https://www.google.com/';
  
  var headers = {
    "Content-Type" : "application/json; charset=utf-8",
  }
  
  var payload = []; // some data if we need post request
  
  var options = {
    "method"  : "POST",
    'headers' : headers,
    'payload' : JSON.stringify(payload)
  };
  
  try {
    
    var response = UrlFetchApp.fetch(url, options);
    return JSON.parse(response);
    
  } catch (error) {
    log("make_some_request", "ERROR: " + error);
  }
}
所以,我不明白我应该如何处理使用代理服务器的请求。我们如何以普通方式(在原始HTTP中)通过代理服务器进行调用。要使此请求成为代理请求,我应该发送哪些标头或负载


另外,据我所知,google应用程序脚本不支持其他类来发出https请求。所以我所拥有的几乎都是原始HTTP。

UrlFetchApp.fetch(url,选项)
返回的值是类HTTPResponse。请参阅:如果需要请求的原始内容,则需要使用
getContent()
方法:
response.getContent()
您的示例使用
POST
urlhttps://www.google.com/
。您需要使用
GET
muteHttpExceptions
设置为true很有帮助
options.muteHttpExceptions=true返回非200状态代码时禁用异常。感谢您的回答。是的,我了解get/post。我的问题不是关于回应,而是关于请求。在其他语言中,有现成的模块可以发出代理请求。只需要设置一些参数。但没有这样的参数或类。因此,我想知道如何以编程方式使用代理发出代理请求,这通常意味着您需要一个套接字(不要与websocket混淆)来连接到代理。代理的类型(socks或http)决定了所使用的通信协议。描述http代理请求的外观。
UrlFetchApp.fetch(url,选项)
的返回值是类HTTPResponse。请参阅:如果需要请求的原始内容,则需要使用
getContent()
方法:
response.getContent()
您的示例使用
POST
urlhttps://www.google.com/
。您需要使用
GET
muteHttpExceptions
设置为true很有帮助
options.muteHttpExceptions=true返回非200状态代码时禁用异常。感谢您的回答。是的,我了解get/post。我的问题不是关于回应,而是关于请求。在其他语言中,有现成的模块可以发出代理请求。只需要设置一些参数。但没有这样的参数或类。因此,我想知道如何以编程方式使用代理发出代理请求,这通常意味着您需要一个套接字(不要与websocket混淆)来连接到代理。代理的类型(socks或http)决定了所使用的通信协议。描述http代理请求的外观。