URLRead
URLRead[url]
向 URL 发送一个请求并读取响应,将其作为响应对象返回.
URLRead[assoc]
向由分量和元数据元素组成的关联形成的 URL 发送一个请求.
URLRead[HTTPRequest[…]]
发送由符号式 HTTPRequest 对象指定的请求.
URLRead[req,"elem"]
只返回响应的元素 elem.
URLRead[req,{"elem1","elem2",…}]
返回元素 elemi 的值的关联.
URLRead[{req1,req2,…},…]
并行发送请求 reqi,给出获得的结果列表.
更多信息和选项
- 在 URLRead[url] 中,url 可以是字符串、URL 对象或云对象.
- 还可以通过在关联中给出下列分量指定 URL:
-
"Scheme" URL 方案 "User" 用户信息 "Domain" 域名或主机 "Port" 端口号(为整数) "Path" 路径列表或字符串 "Query" 查询字符串或参数-值数据对列表 - 下面的项也可以被包括早关联中,和在 HTTPRequest 中一样:
-
Method "GET" HTTP 请求使用的方法 "Body" "" 要发送的消息的主体内容 "ContentType" Automatic 请求的内容-类型标头 "Username" "" 用于请求的用户名 "Password" "" 用于请求的密码 "Cookies" Automatic 要发送到服务器的 cookie "UserAgent" Automatic 要发送的用户代理字符串 "Headers" {} 要发送到服务器的标头列表 - "Body" 的设置的形式如下:
-
"string" 要原文发送的字符串 ByteArray[…] 要原文发送的字节数组 {b1,b2,b3,…} 要原文发送的字节列表 {"par1""val1","par2""val2",…} 要以 URL 编码形式发送的参数和数值列表 {"par1"{"val11",…},…} 有多个数值与之关联的单个参数的列表 <"key1"val1,"key2"val2,… > 参数和数值列表的替代形式 {"par1"File[…],"par2"File[…],…} 要发送的多个部分被编码的文件 {"par1"assoc1,…} 多个部分被编码且每个部分都有详细的规范 - 多个部分被编码时,以关联形式给出每个部分详细的规范,其中的元素为:
-
"Content" 内容的形式为字符串、字节数组、文件对象等 "Name" 分配给每个部分的名称 "MIMEType" 分配给每个部分的 MIME 类型 - 设置 "Cookies"->Automatic 时,指定应发送来自 $Cookies 的、对应于 url 域名的 cookie. "Cookies" 也可以给出表示 cookie 的关联的显式列表. "Cookies"->None 表示不应发送任何 cookie.
- 缺省的 "UserAgent" 通常为 "Wolfram HTTPClient xxxx",其中 xxxx 是版本号.
- "Headers" 的设置可以是规则列表或关联.
- 在 URLRead[req,elem] 中,可以使用下面的元素:
-
"Body" 字符串形式的响应的主体 "BodyByteArray" 字节数组形式的响应的原始主体 "BodyBytes" 字节值列表形式的响应的原始主体 "Headers" 响应中收到的标头的列表 "Cookies" 响应中收到的 cookie 的列表 "ContentType" 内容类型的标头 "StatusCode" 服务器返回的状态码 "StatusCodeDescription" 状态码的纯文本描述 "Stream" 读取响应主体的流对象 {elem1,elem2,…} 元素 elemi 的关联 Automatic 符号式 HTTPResponse 对象 All 所有元素的关联 - URLRead 支持下列选项:
-
Authentication Automatic 要发送的认证信息 CharacterEncoding Automatic 收到的字符串的字符编码 ConnectionSettings Automatic 连接的速度和其他设置 CookieFunction Automatic 应用于收到的 cookie 的函数 FollowRedirects True 是否跟随 HTTP 重定向 Interactive True 是否允许交互式认证对话 TimeConstraint Infinity 等待响应的时间 VerifySecurityCertificates True 是否验证 SSL 安全证书 - 设置 CharacterEncoding->"enc" 规定出现在请求中的所有字符串在被发送到服务器之前应使用 enc 方式进行编码.
- 设置 CharacterEncoding->None 规定字符串在被发送到服务器之前不应对其做任何改动.
- 当 CharacterEncoding->Automatic 时,在被指定的情况下,编码形式取自 "ContentType";否则,编码形式为 "UTF8".
- TimeConstraint->t 允许最多 t 秒来完成 URL 连接和读取.
- TimeConstraint-><"Connecting"->tc,"Reading"->tr > 规定对 URL 连接和读取分别计时.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (2)
改变给定的 URL 的查询参数和方案:
在处理关联时,把参数组合成一个列表非常有用,因为关联不允许重复的键:
要发送主体为 URL 编码形式的 HTTP 请求,可以只发送数值列表. 如果不指定 "Method",自动使用 "POST":
要发送更复杂的文件规范,可以使用 Association:
Association 的内容可以是字符串、ByteArray 或 File:
选项 (4)
属性和关系 (3)
完全支持 File 和 CloudObject:
用 URLDownload 把输出存到文件中:
用 Get 直接从 HTTP 载入 Wolfram 语言表达式:
用 Import 或 URLExecute 导入请求:
可能存在的问题 (1)
巧妙范例 (1)
Import 一个 APIFunction:
文本
Wolfram Research (2016),URLRead,Wolfram 语言函数,https://reference.wolfram.com/language/ref/URLRead.html.
CMS
Wolfram 语言. 2016. "URLRead." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/URLRead.html.
APA
Wolfram 语言. (2016). URLRead. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/URLRead.html 年