• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話圖標(biāo) 余先生:13699882642

    網(wǎng)站百科

    為您解碼網(wǎng)站建設(shè)的點點滴滴

    api中文化之Rust-curl(上)

    發(fā)表日期:2017-06 文章編輯:小燈 瀏覽次數(shù):2391

    api中文化之Rust-curl(上)
    2017-06-08 15:58:18
    ssl證書

    本文目錄

    • 簡介
    • api
      1. 簡介
      2. easy模塊
      3. multi模塊

    簡介

    api中文化系列是為了輔助Rust常用庫翻譯計劃而做的文章,用于簡單整理對應(yīng)庫的api文檔暴露的接口,方便整理后梳理成對應(yīng)的簡潔的教程。

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

    api

    1.簡介

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

    2.easy模塊

    模塊struct:

    • Auth
    • Easy
    • Form
    • Iter
    • List
    • Part
    • SslOpt
    • Transfer
    1.Auth:
    函數(shù)列表:
    • new:返回一個空的Auth結(jié)構(gòu)體實例,用于接下來的認證操作
    • basic(bool):傳入一個人布爾值,設(shè)置是否使用基礎(chǔ)http認證方式
    • digest(bool):傳入一個布爾值,設(shè)置是否使用Digest認證
    • digest_ie(bool):傳入一個布爾值,設(shè)置是否使用ie風(fēng)格的Digest認證
    • gssnegotiate(bool):傳入一個布爾值,設(shè)置是否使用HTTP Negotiate認證
    • ntlm(bool):傳入一個布爾值,設(shè)置是否使用HTTP NTLM認證
    • ntlm_wb(bool):傳入一個bool值,功能的話,Orz小生沒看懂
    實例:
    2.Easy:
    函數(shù)列表:
    • new:返回一個Easy實例,用于接下來的操作

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

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

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

    • signal(bool):Orz,看不懂

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

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

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

    • 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):接受一個字符串引用,指定代理服務(wù)器url

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

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

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

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

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

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

    • local_port_range(u16):定義系統(tǒng)嘗試查找可用端口的次數(shù)

    • dns_cache_timeout(Duration):傳入標(biāo)準(zhǔn)庫結(jié)構(gòu)體Duration,定義dns解析在內(nèi)存中緩存的時間

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

    • tcp_nodelay(bool):配置是否定義TCP_NODELAY選項,否則Nagle's algorithm 將會是禁止?fàn)顟B(tài)

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

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

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

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

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

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

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

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

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

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

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

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

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

    • put(bool):設(shè)置后將設(shè)置發(fā)送PUT請求

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • upload(bool):是否允許上傳數(shù)據(jù)(禁止后將影響上傳相關(guān)函數(shù))

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

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

    • time_value(i64):設(shè)置一個時間戳,對應(yīng)的含義由上一個函數(shù)指定

    • timeout(Duration):傳入一個標(biāo)準(zhǔn)庫StructDuration,設(shè)置請求最大等待時間

    • low_speed_limit(u32):設(shè)置請求時最最低速度,字節(jié)/秒

    • low_speed_time(Duration):傳入一個標(biāo)準(zhǔn)庫StructDuration,設(shè)置低速限制時間段,在該時間段內(nèi)速度低于low_speed_limit的窗口將會被關(guān)閉

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

    • max_recv_speed(u64):限制下載速度

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

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

    • forbid_reuse(bool):設(shè)置是否在一個連接使用后立即關(guān)閉

    • connect_timeout(Duration):傳入一個標(biāo)準(zhǔn)庫StructDuration,設(shè)置連接階段最大等待時間

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • ssl_options(&SslOpt):傳入結(jié)構(gòu)體SslOpt,設(shè)置ssl相應(yīng)選項

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • perform():調(diào)用該函數(shù)后,請求正式發(fā)出!!!!!

    • transfer():該函數(shù)返回值簽名為Transfer<'easy, 'data>,新建一個Transfer,用于設(shè)置回調(diào)函數(shù)和數(shù)據(jù).

    • unpause_read():取消讀取的暫停狀態(tài)

    • unpause_write():取消寫入的暫停狀態(tài)

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

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

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

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

    • send(&[u8]):向已經(jīng)建立連接的socket里寫入數(shù)據(jù)

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

    實例:
    • 實現(xiàn)了Send實例
    • 實現(xiàn)了Drop實例

    模塊enums:

    • HttpVersion
    • InfoType
    • IpResolve
    • NetRc
    • ProxyType
    • ReadError
    • SeekResult
    • SslVersion
    • TimeCondition
    • WriteError

    3.multi模塊

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


    本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/20376.html
    相關(guān)開發(fā)語言
     八年  行業(yè)經(jīng)驗

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費獲得網(wǎng)站建設(shè)方案及報價

    咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

    業(yè)務(wù)熱線:余經(jīng)理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    • QQ咨詢
    • 在線咨詢
    • 官方微信
    • 聯(lián)系電話
      座機0755-29185426
      手機13699882642
    • 預(yù)約上門
    • 返回頂部
    精品国产麻豆免费网站| 精品免费视在线观看| 亚洲国产精品成人综合色在线婷婷| 国产一区二区三区精品久久呦| 亚洲国产精品张柏芝在线观看| 99re6在线精品免费观看| 国产麻豆剧果冻传媒免精品费网站| 91精品手机国产免费| 国产综合色在线精品| 午夜亚洲av永久无码精品| 国产精品久久久久a影院| 久久丝袜精品综合网站| 久热精品视频第一页| 国产人妖系列在线精品| 久9视频这里只有精品8| 四虎成人精品一区二区免费网站| 久久精品国产99久久无毒不卡| 日韩精品无码一区二区三区AV| 日韩美女18网站久久精品| 免费精品国产自产拍在| 久久99精品久久久久久hb无码| 国产精品成人A区在线观看| 中文字幕日韩专区精品系列| 国产乱色精品成人免费视频| 国内精品久久久久久影院| 亚洲国产精品无码第一区二区三区 | 国产精品午睡沙发系列| 精品久久久久国产免费| 99re九精品视频在线视频| 国产在线精品99一卡2卡| 亚洲av永久无码精品网站| 五月天婷婷精品免费视频| 精品国产一区二区三区香蕉事| 亚洲国产成人精品无码区在线秒播| 国产国拍亚洲精品mv在线观看| 精品一久久香蕉国产线看播放| 四虎影视精品永久免费网站| 精品久久久久亚洲| 呦交小u女国产精品视频| 56prom在线精品国产| 亚洲国产精品热久久|