本文目录 简介 api 简介 easy模块 multi模块 简介
api中文化系列是为了辅助rust常用库翻译计划而做的文章,用于简单整理对应库的api文档暴露的接口,方便整理后梳理成对应的简洁的教程。
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)
ran
云服务器便宜好用买哪个好163企业阿里云服务器ecs忘记续费了网站优化中流量突然大幅下降的原因打不开了麻烦处理一下-其他问题域名申请信息有什么重要性?域名注册注意什么?自学编程从哪学起CC攻击和ddos的区别