Rust常用庫翻譯之curl傳送門 Rust翻譯計劃總傳送門

<!–more–>

api 1.簡介

該api共提供了兩個模塊easy和multi,六個struct和一個函數init。其中基本入口為easy模塊。

2.easy模塊 模塊struct: Auth Easy Form Iter List Part SslOpt Transfer 1.Auth: 函數列表: new:返回一個空的Auth結構體實例,用于接下來的認證操作 basic(bool):傳入一個人布爾值,設置是否使用基礎http認證方式 digest(bool):傳入一個布爾值,設置是否使用Digest認證 digest_ie(bool):傳入一個布爾值,設置是否使用ie風格的Digest認證 gssnegotiate(bool):傳入一個布爾值,設置是否使用HTTP Negotiate認證 ntlm(bool):傳入一個布爾值,設置是否使用HTTP NTLM認證 ntlm_wb(bool):傳入一個bool值,功能的話,Orz小生沒看懂 實例: 實現了Clone實例 實現了Debug實例 2.Easy: 函數列表:

new:返回一個Easy實例,用于接下來的操作

verbose(bool):設為true后,控制臺將輸出大量的信息以供調試

show_header(bool):設為true后返回的數據將攜帶頭信息

progress(bool):是否顯示進程表(未找到設為true后的變化,Orz)

signal(bool):Orz,看不懂

wildcard_match(bool):是否根據文件名稱匹配傳輸多個文件,文件后綴使用fnmatch-like模式匹配

write_function(F):接受一個閉包函數作為參數傳入,閉包函數簽名為:F: FnMut(&[u8]) -> Result<usize, WriteError> Send \\\’static, 在請求完成后會調用該閉包函數,返回的數據作為參數傳入,注意的是,返回的數據可能量非常大,也有可能小到0

read_function(F):接受一個閉包函數作為參數,函數簽名等同上文write_function(F),不同的是,該回調是在請求上傳文件完成后調用

seek_function(F):待定

progress_function(F):待定

ssl_ctx_function(F):待定

debug_function(F):待定

header_function(F):待定

fail_on_error(bool):接受一個布爾值,指定是否在http返回的code>400直接fail

url(&str):接受一個字符串引用,指定要訪問的url

port(u16): 傳入一個u16整型,指定端口號

proxy(&str):接受一個字符串引用,指定代理服務器url

proxy_port(u16):接受一個u16整型參數,設置代理服務器端口號

proxy_type(ProxyType):接受一個ProxyType的枚舉,用于設置代理類型

noproxy(&str):接受一個字符串引用,定義一系列的主機列表,這些訪問這些主機時不使用代理,主機之間用逗號分割,可以用*通配符

http_proxy_tunnel(bool):傳入一個布爾值,定義是否通過代理隧道進行所有操作

interface(&str):傳入一個字符串引用,定義操作綁定哪一個網絡接口,可以在這里指定接口名稱、ip地址或者主機名

set_local_port(u16):指示哪個端口應綁定到本地連接。默認是0,即任意端口

local_port_range(u16):定義系統嘗試查找可用端口的次數

dns_cache_timeout(Duration):傳入標準庫結構體Duration,定義dns解析在內存中緩存的時間

buffer_size(size):傳入usize整型,定義接受緩沖區大小,字節為單位

tcp_nodelay(bool):配置是否定義TCP_NODELAY選項,否則Nagle\\\’s algorithm 將會是禁止狀態

username(&str):定義認證時的使用的用戶

password(&str):定義認證時使用的密碼

http_auth(&Auth):傳入一個Auth實例引用,定義http認證方式

proxy_username(&str):代理服務器認證時的用戶名

proxy_password(&str):代理服務器認證時的密碼

proxy_auth(&Auth):傳入Auth實例引用,定義http代理時的認證方式

netrc(netRc):傳入一個枚舉netRc,用于配置netrc解析

autoreferer(bool):是否自動更新引用頭

accept_encoding(&str):啟動http壓縮方式,設置Accept-Encoding頭內容,比如 identity, zlib, and gzip。傳入0長度的字符串時會發送所有可接受編碼

transfer_encoding(bool):是否啟用http傳輸編碼

follow_location(bool):是否跟隨返回頭中的3xx設置進行重定向

unrestricted_auth(bool):配置后,憑證將不止發送給第一個主機,重定向后的主機也會收到憑證

max_redirections(u32):指定最大允許的重定向次數,如果設置為0則拒絕重定向

put(bool):設置后將設置發送PUT請求

post(bool):設置后竟會發送POST請求,并且自動添加Content-Type: application/x-www-form-urlencoded 頭部,攜帶的數據可以通過post_fields指定或者通過設置read function指定

post_fields_copy(&[u8]):設置post時攜帶的數據,數據會被復制進該句柄中,如果不需要,則可以選擇使用read callback。

post_field_size(u64):配置post中傳輸的數據的大小,自動被調用作為post_fields的一部分,并且只有在為read callback提供數據數據時才會被調用。所以該選項也是可選的。

httppost(Form):傳入一個Struct Form,設置使用multipart/formdata 格式傳輸數據,數據通過Form Struct實例傳入

referer(&str):設置引用頭,refer字段

useragent(&str):設置頭部user-agent字段

http_headers(List):傳入一個Struct List,批量設置http頭

cookie(&str):傳入字符串如“key1=v1;key2=v2”,設置cookie,重復調用此函數會覆蓋上次的值

cookie_file(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑傳入一個cookie文件,格式可以時 Netscape / Mozilla的cookie格式,也可以是header里set-Cookie的格式。同時如果多次調用該函數,會附加相應的值

cookie_jar(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑傳入一個文件,在刪除該句柄時libcurl會把cookie寫入該文件。注:libcurl并不會從該文件中讀取任何cookie

cookie_session(bool):開啟后cookie將會只在每個會話中有效,每次開一個會話時,libcurl不會讀取之前存儲的cookie

cookie_list(&str):添加到或操縱保存在內存中的Cookie。這樣的cookie可以是Netscape / Mozilla格式的一行,也可以是常規的HTTP樣式頭(Set-Cookie:…)格式。這也將啟用Cookie引擎。這將單個Cookie添加到內部Cookie存儲。

get(bool):啟用將發送get請求

ignore_content_length(bool):是否忽略頭文件中的content-length字段

http_content_decoding(bool):是否啟用http content解碼(注:這個選項默認是true)

http_transfer_decoding(bool):是否啟用http傳輸解碼(注:這個選項默認是true)

range(&str):表示此請求應檢索的范圍。提供的字符串應為N-M形式,其中N或M可以被省略。 對于HTTP傳輸,也可以接受以逗號分隔的多個范圍。(這條沒看懂)

resume_from(u64):設置一個點,值為一個偏移量,傳輸將從此處恢復繼續(文檔是這個說的,具體效果有待考證)

custom_request(&str):設置一個自定義的請求字符串

fetch_filetime(bool):是否獲取遠程資源的修改時間

nobody(bool):設置為true后,請求將不會返回body體,這在有時候只是需要獲得頭信息時蠻有用

in_filesize(u64):如果要攜帶文件上傳,該函數設置文件尺寸

upload(bool):是否允許上傳數據(禁止后將影響上傳相關函數)

max_filesize(u64):下載的文件的最大大小

time_condition(TimeCondition):傳入一個枚舉TimeCondition,設置一個請求的之間條件,與下一個函數搭配使用。

time_value(i64):設置一個時間戳,對應的含義由上一個函數指定

timeout(Duration):傳入一個標準庫Struct Duration,設置請求最大等待時間

low_speed_limit(u32):設置請求時最最低速度,字節/秒

low_speed_time(Duration):傳入一個標準庫Struct Duration,設置低速限制時間段,在該時間段內速度低于low_speed_limit的窗口將會被關閉

max_send_speed(u32):告訴限制,設置最高速度,字節每秒

max_recv_speed(u64):限制下載速度

max_connects(u64):設置最大連接緩存大小,默認是5,(注:修改此值并無使益處)

fresh_connect(bool):是否強制重新建立一個新連接

forbid_reuse(bool):設置是否在一個連接使用后立即關閉

connect_timeout(Duration):傳入一個標準庫Struct Duration,設置連接階段最大等待時間

ip_resolve(IpResolve):傳入枚舉IpResolve,指定使用的ip協議版本。

connect_only(bool):是否在成功連接主機后就停止。

ssl_cert(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑傳入ssl 客戶端的證書

ssl_cert_type(&str):設置ssl證書類型

ssl_key(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定TLS和SSL客戶端證書的私鑰文件。

ssl_key_type(&str):設置ssl_key私鑰類型

key_password(&str):設置私鑰密碼

ssl_engine(&str):設置ssl引擎識別碼

ssl_engine_default(bool):是否將該句柄的ssl引擎設為默認值

http_version(HttpVersion):傳入一個枚舉HttpVersion,設置http版本

ssl_version(SslVersion):傳入一個枚舉SslVersion,設置ssl版本

ssl_verify_host(bool):是否根據主機驗證ssl名稱,默認為true

ssl_verify_host(bool):是否驗證對等主機的ssl證書,默認是true,若要禁止,需非常小心,禁止后幾乎就是禁止了ssl所有安全功能

cainfo(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定CA包位置

issuer_cert(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定issuer SSL。

capath(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定CA證書的文件夾位置

crlfile(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定證書撤銷列表文件

certinfo(bool):是否請求ssl證書信息

random_file(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定ssl用到的隨機數源

egd_socket(AsRef<Path>):傳入一個在標準庫trait AsRef處理后的路徑,通過該路徑指定EGD socket路徑

ssl_cipher_list(&str):指定TLS用到的密碼

ssl_sessionid_cache(bool):是否使用ssl的session-id緩存

ssl_options(&SslOpt):傳入結構體SslOpt,設置ssl相應選項

effective_url():該函數返回值簽名為Result<Option<&str>, Error>,返回多次重定向后最后一次的url

effective_url_bytes():該函數返回值簽名為Result<Option<&[u8]>, Error>,返回多次重定向后最后一次的url,以字節為單位

response_code():該函數返回值簽名為 Result<u32, Error>,返回請求的返回狀態碼

http_connectcode():該函數返回值簽名為 Result<u32, Error>,返回連接的狀態碼

filetime():該函數返回值簽名為 Result<i64, Error>,返回檢索到文檔的遠程服務器時間

total_time():該函數返回值簽名為 Result<Duration, Error>,返回傳輸用的總時間

namelookup_time():該函數返回值簽名為 Result<Duration, Error>,返回域名解析所花時間

connect_time():該函數返回值簽名為 Result<Duration, Error>,返回連接服務器所花時間

appconnect_time():該函數返回值簽名為 Result<Duration, Error>,返回直到SSL/SSH握手花費時間

pretransfer_time():該函數返回值簽名為 Result<Duration, Error>,返回直到開始傳輸時花費的時間

starttransfer_time():該函數返回值簽名為 Result<Duration, Error>,返回直到剛開始收到數據時花費的時間

redirect_time():該函數返回值簽名為 Result<Duration, Error>,返回所有重定向所花費的時間

redirect_count():該函數返回值簽名為 Result<u32, Error>,返回重定向的次數。

redirect_url():該函數返回值簽名為 Result<Option<&str>, Error>,返回將要重定向的url

redirect_url_bytes:該函數返回值簽名為 Result<Option<&[u8]>, Error>,返回將要重定向的url,以字節為單位

header_size():該函數返回值簽名為 Result<u64, Error>,返回頭部大小

request_size():該函數返回值簽名為 Result<u64, Error>,返回請求包大小

content_type():該函數返回值簽名為 Result<Option<&str>, Error>,返回content_type字段內容

content_type_bytes():該函數返回值簽名為 Result<Option<&[u8]>, Error>,返回content_type字段內容,以字節為單位

os_errno():該函數返回值簽名為 Result<i32, Error>,返回最后一次連接失敗時的錯誤號

primary_ip():該函數返回值簽名為 Result<Option<&str>, Error>,返回最后一次連接的ip地址

primary_port():該函數返回值簽名為 Result<u16, Error>,返回最后一次連接的目的端口

local_ip():該函數返回值簽名為 Result<Option<&str>, Error>,返回最后一次連接的本地ip地址

local_port():該函數返回值簽名為 Result<u16, Error>,返回最后一次連接的本地端口

cookies():該函數返回值簽名為 Result<List, Error>,返回Cookie列表

perform():調用該函數后,請求正式發出?。。。?!

transfer():該函數返回值簽名為Transfer<\\\’easy, \\\’data>,新建一個Transfer,用于設置回調函數和數據.

unpause_read():取消讀取的暫停狀態

unpause_write():取消寫入的暫停狀態

url_encode(&[u8]):傳入一個url,返回一個url encode后的String

url_decode(&str):傳入一個url,返回一個url decode后的vector

reset():重置該句柄所有值為初始值

recv(& mut [u8]):返回值簽名為Result<usize, Error>,從已經建立連接的socket里拉取數據

send(&[u8]):向已經建立連接的socket里寫入數據

raw():返回一個 curl_sys::CURL指針

實例: 實現了Send實例 實現了Drop實例 模塊enums: HttpVersion InfoType IpResolve NetRc ProxyType ReadError SeekResult SslVersion TimeCondition WriteError 3.multi模塊

詳情見:api中文化之Rust-curl(下)

更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » api中文化之Rust-curl(上)

登錄

找回密碼

注冊

主站蜘蛛池模板: 国产精欧美一区二区三区| 日韩熟女熟妇久久精品综合| 国产麻豆成人精品av| 国产蜜臀视频一区二区三区| 影视先锋av资源噜噜| 国产a在视频线精品视频下载| 久久精品国产亚洲av热一区| 久久热这里这里只有精品| 精品国产AⅤ无码一区二区| 国产亚洲精品合集久久久久 | 成熟了的熟妇毛茸茸| 老司机性色福利精品视频| 40岁大乳的熟妇在线观看| 亚洲深夜精品在线观看| 亚洲免费观看一区二区三区| 99国产欧美另类久久久精品| 日韩精品 在线 国产 丝袜| 国产精品午夜福利免费看| 亚洲乱码国产乱码精品精| 亚洲人成网站色www| 亚洲男人在线天堂| 久久一卡二卡三卡四卡| 亚洲精品国产无套在线观| 长武县| 在线国产精品中文字幕| 少妇办公室好紧好爽再浪一点| 在国产线视频A在线视频| 亚洲中文字幕日产无码成人片| 日韩精品中文字幕人妻| 久久人人爽人人爽人人av| 亚洲东京色一区二区三区| 康乐县| 蜜臀人妻精品一区二区免费| 中文字幕日韩精品国产| 无码熟妇人妻av影音先锋 | 日韩福利视频导航| 一区二区三区岛国av毛片| 国产玩具酱一区二区三区| 温泉县| 欧美精品国产综合久久| 成人av午夜在线观看|