aardio 文档

aardio 代理服务器设置指南

在 aardio 中设置代理的常用格式

例如有以下代理服务器:

那么 aardio 中所有 inet,web.rest 名字空间的库与函数的代理参数都可以如下设置。

代理设置忽略大小写,先记住几个简单的规则就足够用了,后面再细说原理。

在 aardio 中设置代理有哪些方法

设置代理的方法分为以下四类

1.设置系统全局代理服务器

例如

import inet.conn;
inet.conn.setProxy( ,"socks=127.0.0.1:1081")

一般只要指定代理服务器参数就可以,其他参数自动指定。 第一个参数是网络连接名,省略即可。 第二个参数指定代理服务器。 第三个参数是指定不走代理的 proxyBypass 参数,aardio 会自动设定,一般不需要去指定。

2.设置当前进程内代理服务器,不影响其他进程 。

例如

import inet;
inet.setProxy("socks=127.0.0.1:1081")

第一个参数指定代理服务器。 第二个参数是指定不走代理的 proxyBypass 参数,aardio 会自动设定,一般不需要去指定。

3.设置 HTTP 客户端对象的代理

aardio 以下所有类的构造参数全部是一样的:

所有这些类的构造函数用法都一样,其实一般我们都不必指定任何参数。

参数用法:

web.rest 下面所有的 Client 类构造对象实例时都会调用基类,并将构造参数转发给基类。 web.rest.client(userAgent, proxy,proxyBypass,flags)

而 web.rest.client 构造函数被调用时,又会自动调用,并将构造参数转发给 inet.http。 inet.http(userAgent, proxy,proxyBypass,flags)

下面是一个例子:

import web.rest.jsonClient;

//第二个构造参数指定代理服务器
var http = web.rest.jsonClient(,"socks=127.0.0.1:1081");

//声明 HTTP 接口对象
//声明 API,参数 @3 指定的模式串用于匹配返回数据
var api = http.api("http://myip.ipip.net",,"(\d+\.\d+\.\d+\.\d+)");

//发送 GET 请求
var ret = api.get();

4.设置浏览器或浏览器控件的代理服务器

代理服务器格式说明

代理服务器的写法格式一般是 WinINet 规定的格式。 Chromium 内核的浏览器做了一些小的改动,参考 Proxy support in Chrome

设置单个完整的代理服务器格式是这样: "客户端被代理协议=代理服务器协议://主机地址:端口号"

等号后面是指代理服务器用什么协议实现的代理。 等号前面指的是指被代理的客户端请求协议。

如果有多个服务器用分号隔开 "http=http://127.0.0.1:1089;https=http://127.0.0.1:1082" 上面分别为 http 协议,https 协议指定了不同的代理服务器。

其实现在 http,ftp 这些协议很少见了,而且就算用了也不必要分开设置。 所以等号前面可以省略,直接设置所有协议就可以了。

而你写在等号后面的 "http://" 也是多余的,因为这是默认值,写不写作用是一样。 所以其实就是本文最前面说的,用最简单的写法 "127.0.0.1:1082" 就可以了。 除非 SOCKS 服务器才需要写 "socks=127.0.0.1:1081" 指定一下被代理协议。

注意 aardio 的 web.rest 下面的所有 Client 类基于 web.rest.client。 而 web.rest.client 其实是调用 inet.http 创建 HTTP 客户端,而 inet.http,web.form 都是基本系统 WinINet 组件, 所以设置代理的语法与限制遵守 WinINet 规则。包括操作系统的代理设置也遵守这个规则。

绕过代理服务器参数格式说明

proxyBypass 指定不走代理的目标主机 IP 或域名,支持通配符,多个地址用分号隔开。

web.rest.client, inet.http 这些创建的客户端用于请求指定的地址,所以 proxyBypass 参数一般没有实际意义。

而 inet.setProxy 以及 inet.conn.setProxy 内部都自动设置了这个参数。

inet.setProxy 设置 proxyBypass 参数的源码如下:


if(!proxyBypass){
    proxyBypass="<local>;<lan>;localhost;127.*;windows10.microdone.cn"
}

proxyBypass = ..string.replace(proxyBypass,"%\<\>",{
    ["<lan>"]  ="10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*"
})

<lan> 由 aardio 替换为 局域名 IP 地址。

如何用代码打开并查看系统代理服务器设置

代码如下:

//打开系统代理设置页
if(_WIN10_LATER) raw.execute("ms-settings:network-proxy"); 
else raw.execute("control.exe","inetcpl.cpl,,4"); 

Markdown 格式