Object 內置對象

對象HttpClient

http客戶端對象

http客戶端對像模擬瀏覽器環境緩存cookie,並在訪問url的時候攜帶對應的cookie,不同的http客戶端對像是相互隔離的,提供http的request、get、post等方法。用法如下:

1 2 3
var http = require('http'); var httpClient = new http.Client(); httpClient.request('GET', 'http://fibjs.org');

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>HttpClient|new HttpClient()|cookies;timeout;enableCookie;autoRedirect;enableEncoding;maxBodySize;userAgent;poolSize;poolTimeout;proxyAgent;sslVerification|setClientCert();request();get();post();del();put();patch()] [object] <:- [HttpClient] HttpClient new HttpClient() cookies timeout enableCookie autoRedirect enableEncoding maxBodySize userAgent poolSize poolTimeout proxyAgent sslVerification setClientCert() request() get() post() del() put() patch() object toString() toJSON()

構造函數

HttpClient

HttpClient 構造函數,創建一個新的HttpClient對象

1
new HttpClient();

成員屬性

cookies

NArray, 返回http客戶端的 HttpCookie 對象列表

1
readonly NArray HttpClient.cookies;

timeout

Integer, 查詢和設置超時時間單位毫秒

1
Integer HttpClient.timeout;

enableCookie

Boolean, cookie 功能開關,默認開啟

1
Boolean HttpClient.enableCookie;

autoRedirect

Boolean, 自動redirect 功能開關,默認開啟

1
Boolean HttpClient.autoRedirect;

enableEncoding

Boolean, 自動解壓縮功能開關,默認開啟

1
Boolean HttpClient.enableEncoding;

maxBodySize

Integer, 查詢和設置body 最大尺寸,以MB 為單位,缺省為-1,不限制尺寸

1
Integer HttpClient.maxBodySize;

userAgent

String, 查詢和設置 http 請求中的瀏覽器標識

1
String HttpClient.userAgent;

poolSize

Integer, 查詢和設置keep-alive 最大緩存連接數,缺省128

1
Integer HttpClient.poolSize;

poolTimeout

Integer, 查詢和設置keep-alive 緩存連接超時時間,缺省10000 ms

1
Integer HttpClient.poolTimeout;

proxyAgent

String, 查詢和設置代理服務器

1
String HttpClient.proxyAgent;

sslVerification

Integer, 查詢和設置連接https 時的證書驗證模式, 參考 ssl 模塊的VERIFY_* 常量, 默認值為 ssl.verification

1
Integer HttpClient.sslVerification;

成員函數

setClientCert

設定缺省客戶端證書

1 2
HttpClient.setClientCert(X509Cert crt, PKey key);

調用參數:

  • crt: X509Cert, 證書,用於發送給服務器驗證客戶端
  • key: PKey, 私鑰,用於與客戶端會話

request

發送 http 請求到指定的流對象,並返回結果

1 2
HttpResponse HttpClient.request(Stream conn, HttpRequest req) async;

調用參數:

返回結果:


發送 http 請求到指定的流對象,並返回結果

1 2 3
HttpResponse HttpClient.request(Stream conn, HttpRequest req, SeekableStream response_body) async;

調用參數:

返回結果:


請求指定的 url,並返回結果

1 2 3
HttpResponse HttpClient.request(String method, String url, Object opts = {}) async;

調用參數:

  • method: String, 指定 http 請求方法:GET, POST 等
  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7 8
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {}, "response_body": SeekableStream // 指定接受 resposne 数据的流 }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


get

用GET 方法請求指定的 url,並返回結果,等同於request("GET", ...)

1 2
HttpResponse HttpClient.get(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


post

用POST 方法請求指定的 url,並返回結果,等同於request("POST", ...)

1 2
HttpResponse HttpClient.post(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


del

用DELETE 方法請求指定的 url,並返回結果,等同於request("DELETE", ...)

1 2
HttpResponse HttpClient.del(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


put

用PUT 方法請求指定的 url,並返回結果,等同於request("PUT", ...)

1 2
HttpResponse HttpClient.put(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


patch

用PATCH 方法請求指定的 url,並返回結果,等同於request("PATCH", ...)

1 2
HttpResponse HttpClient.patch(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String HttpClient.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value HttpClient.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值