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 支持下列选项:
  • AuthenticationAutomatic要发送的认证信息
    CharacterEncodingAutomatic收到的字符串的字符编码
    ConnectionSettingsAutomatic连接的速度和其他设置
    CookieFunction Automatic应用于收到的 cookie 的函数
    FollowRedirects True是否跟随 HTTP 重定向
    InteractiveTrue是否允许交互式认证对话
    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)

获取 URL 并返回一个 HTTP 响应:

用第二个参数获取 HTTP 请求的不同元素:

对于更复杂的请求,可以使用 HTTPRequest

范围  (2)

利用分量构建 URL:

改变给定的 URL 的查询参数和方案:

为指定同样的参数名,可以使用规则列表:

或者将其组合成一个列表:

在处理关联时,把参数组合成一个列表非常有用,因为关联不允许重复的键:

如果不指定 "Method",自动使用 "GET"

主体可以是原始字符串:

要发送主体为 URL 编码形式的 HTTP 请求,可以只发送数值列表. 如果不指定 "Method",自动使用 "POST"

要发送文件就使用文件对象:

要发送更复杂的文件规范,可以使用 Association

Association 的内容可以是字符串、ByteArrayFile

选项  (4)

CookieFunction  (1)

当接收到 HTTP 响应时,对收到的每个 Cookie 应用一个函数:

FollowRedirects  (1)

指定检索 URL 时是否跟随 HTTP 重定向:

TimeConstraint  (1)

指定从服务器完成数据下载可用的最大时间,单位为秒:

VerifySecurityCertificates  (1)

验证服务器使用的 SSL 证书是有效的:

属性和关系  (3)

完全支持 FileCloudObject

URLDownload 把输出存到文件中:

Get 直接从 HTTP 载入 Wolfram 语言表达式:

ImportURLExecute 导入请求:

可能存在的问题  (1)

有几种原因可能导致网络请求出错;系统会发送消息帮助你查找可能的原因,同时返回一个 Failure 对象:

Failure 对象含有 HTTPRequest 对象:

巧妙范例  (1)

Import 一个 APIFunction

Wolfram Research (2016),URLRead,Wolfram 语言函数,https://reference.wolfram.com/language/ref/URLRead.html.

文本

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 年

BibTeX

@misc{reference.wolfram_2024_urlread, author="Wolfram Research", title="{URLRead}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/URLRead.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_urlread, organization={Wolfram Research}, title={URLRead}, year={2016}, url={https://reference.wolfram.com/language/ref/URLRead.html}, note=[Accessed: 21-November-2024 ]}