/
HttpClient.idl
183 lines (155 loc) · 8.01 KB
/
HttpClient.idl
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/*! @brief http客户端对象
http客户端对象模拟浏览器环境缓存cookie,并在访问url的时候携带对应的cookie,不同的http客户端对象是相互隔离的,提供http的request、get、post等方法。
用法如下:
```JavaScript
var http = require('http');
var httpClient = new http.Client();
httpClient.request('GET', 'http://fibjs.org');
```
*/
interface HttpClient : object
{
/*! @brief HttpClient 构造函数,创建一个新的HttpClient对象 */
HttpClient();
/*! @brief 返回http客户端的 HttpCookie 对象列表 */
readonly List cookies;
/*! @brief 查询和设置超时时间 单位毫秒*/
Integer timeout;
/*! @brief 查询和设置 body 最大尺寸,以 MB 为单位,缺省为 -1,不限制尺寸 */
Integer maxBodySize;
/*! @brief cookie功能开关,默认开启 */
Boolean enableCookie;
/*! @brief 自动redirect功能开关,默认开启 */
Boolean autoRedirect;
/*! @brief 查询和设置 http 请求中的浏览器标识 */
String userAgent;
/*! @brief 发送 http 请求到指定的流对象,并返回结果
@param conn 指定处理请求的流对象
@param req 要发送的 HttpRequest 对象
@return 返回服务器响应
*/
HttpResponse request(Stream conn, HttpRequest req) async;
/*! @brief 请求指定的 url,并返回结果
@param method 指定 http 请求方法:GET, POST 等
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse request(String method, String url, Object headers = {}) async;
/*! @brief 请求指定的 url,并返回结果
@param method 指定 http 请求方法:GET, POST 等
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头
@return 返回服务器响应
*/
HttpResponse request(String method, String url, SeekableStream body, Map headers) async;
/*! @brief 请求指定的 url,并返回结果
@param method 指定 http 请求方法:GET, POST 等
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse request(String method, String url, SeekableStream body, Object headers = {}) async;
/*! @brief 请求指定的 url,并返回结果
@param method 指定 http 请求方法:GET, POST 等
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse request(String method, String url, Buffer body, Object headers = {}) async;
/*! @brief 用 GET 方法请求指定的 url,并返回结果,等同于 request("GET", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse get(String url, Object headers = {}) async;
/*! @brief 用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse post(String url, SeekableStream body, Object headers = {}) async;
/*! @brief 用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse post(String url, Buffer body, Object headers = {}) async;
/*! @brief 用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse post(String url, Object headers = {}) async;
/*! @brief 用 DELETE 方法请求指定的 url,并返回结果,等同于 request("DELETE", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse del(String url, Object headers = {}) async;
/*! @brief 用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse put(String url, SeekableStream body, Object headers = {}) async;
/*! @brief 用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse put(String url, Buffer body, Object headers = {}) async;
/*! @brief 用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse put(String url, Object headers = {}) async;
/*! @brief 用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse patch(String url, SeekableStream body, Object headers = {}) async;
/*! @brief 用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse patch(String url, Buffer body, Object headers = {}) async;
/*! @brief 用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse patch(String url, Object headers = {}) async;
/*! @brief 用 FIND 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse find(String url, SeekableStream body, Object headers = {}) async;
/*! @brief 用 FIND 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param body 指定发送的 body 内容
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse find(String url, Buffer body, Object headers = {}) async;
/*! @brief 用 FIND 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)
@param url 指定 url,必须是包含主机的完整 url
@param headers 指定附加的 http 头,缺省无附加头
@return 返回服务器响应
*/
HttpResponse find(String url, Object headers = {}) async;
};