HTTPRequest

HTTPRequest[url]

表示特定 URL 的一个 HTTP 请求.

HTTPRequest[assoc]

表示从关联 assoc 的成分中创建的一个 HTTP 请求.

HTTPRequest[url,assoc]

表示带有像 assoc 给出的页眉这样的额外元素的特定 URL 的一个 HTTP 请求.

更多信息和选项

  • HTTPRequest 给出 HTTP 请求的一个符号表达式;并不执行该请求.
  • HTTPRequest[url] 中, url 可以是字符串、URL 对象或云对象.
  • URL 也可以通过给出关联中的下列成分指定:
  • "Scheme"URL 方案
    "User"用户信息
    "Domain"域名或主机
    "Port"端口号(整数)
    "Path"路径列表或字符串
    "Query"查询字符串或参数-值对列表
  • 下列额外条目也可以在关联中给出:
  • Method"GET"用于 HTTP 请求的方法
    "Body"""要发送的消息主体的内容
    "ContentType"Automatic请求的内容类型页眉
    "Username"""用于请求的用户名
    "Password"""用于请求的密码
    "Cookies"Automatic要送至服务器的缓存内容
    "UserAgent"Automatic要发送的用户代理字符串
    "Headers"{}要发送给服务器的页眉列表
  • "Body" 的设置可以有下列形式;
  • "string"要发送的字符串
    ByteArray[]要发送的字节数组
    {b1,b2,b3,}要发送的字节列表
    {"par1""val1","par2""val2",}要发送的 URL 编码参数和值列表
    {"par1"{"val11",},}与一个参数相关联的多个值的列表
    <|"key1"val1,"key2"val2,|>参数和值列表的其他形式
    {"par1"File[],"par2"File[],}带有多部分编码(multipart encoding)的待发送文件
    {"par1"assoc1,}有对各部分详细说明的多部分编码
  • 多部分编码中各部分的详细说明以与下列元素的关联形式给出:
  • "Content"字符串、字节数组、文件对象等形式的内容
    "Name"指定给各部分的名称
    "MIMEType"指定给各部分的 MIME 类型
  • "Cookies"->Automatic 设置指定应该发送对应于 url 域的 $Cookies 中的缓存内容(Cookie). "Cookies" 也可以给出表示这些缓存内容的关联的显式列表.
  • "Headers" 的设置可以是一个规则列表或一个关联.
  • 默认的 "UserAgent" 通常是 "Wolfram HTTPClient xxxx",其中 xxxx 是版本号.
  • HTTPRequest 支持下列选项:
  • CharacterEncodingAutomatic已发送字符串的字符编码
    CookieFunction Automatic要应用于收到的各缓存内容的函数
    FollowRedirects True是否遵循 HTTP 的重定向
    InteractiveTrue是否允许交互式的认证对话
    TimeConstraint Infinity等待响应的时间
    VerifySecurityCertificates True是否合适 SSL 安全证书
  • 设置 CharacterEncoding->"enc" 指定了出现在请求中的所有字符串都应该在发送给服务器前通过 enc 进行编码.
  • 设置 CharacterEncoding->None 指定了字符串发送给服务器之前不进行任何改变.
  • 通过 CharacterEncoding->Automatic,如果指定,编码将从 "ContentType" 元素中取出;否则编码是 "UTF8".
  • TimeConstraint->t 允许连接到 HTTP 请求中指定的 URL 并从中读取使用至多 t 秒.
  • TimeConstraint-><|"Connecting"->tc,"Reading"->tr|> 为到 URL 的连接并从中读取指定不同的超时设定.
  • HTTPRequest[]["prop"] 提取 HTTP 请求的 prop 属性值.
  • 包括所有成分和额外元素在内的可能属性还有:
  • "Body"作为字符串的请求主体
    "BodyByteArray"作为 ByteArray 对象的请求的原始主体
    "BodyBytes"作为字节值列表的请求的原始主体
    "FormRules"请求中所有形式的元素的规则
    "PathString"作为字符串的完整路径
    "QueryString"完整的查询字符串
    "AbsolutePath"包括方案和域的作为字符串的完整路径
    "AbsoluteDomain"包括方案的作为字符串的完整域
    "Properties"所有可能属性的列表
    "PropertyAssociation"给出所有属性值的关联

范例

打开所有单元关闭所有单元

基本范例  (1)

定义一个 HTTPRequest

通过 URLRead 获取一个 HTTPResponse

从请求中提取元数据:

范围  (2)

从成分中构建一个 URL:

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

可以使用一个规则列表来指定有相同名称的参数:

它们也可以在列表中被分组:

作用于关联时在列表内对参数分组是很有用的,这是因为它们不允许重复的键:

如果没有指定 Method,则自动使用 "GET"

主体可以是原始字符串:

要发送在主体为 URL 编码的 HTTP 请求的话,可以只发送一个值列表. 如果没有指定 Method,则自动使用 "POST"

要发送文件,只需使用文件对象:

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

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

选项  (4)

VerifySecurityCertificates  (1)

确认服务器使用的 SSL 证书有效:

CookieFunction  (1)

打印在 HTTP 请求中返回的各缓存内容:

TimeConstraint  (1)

以秒为单位指定完成从服务器下载数据的最长期限:

FollowRedirects  (1)

指定检索 URL 时是否遵循 HTTP 重新定向:

属性和关系  (2)

完全支持 FileCloudObject

使用 URLDownload 在文件中存储输出:

通过 ImportURLExecute 导入请求:

可能存在的问题  (1)

网络请求出错可能有几个原因;系统会发出信息帮助你确定可能的原因,而且会返回一个 Failure 对象:

Failure 对象含有 HTTPRequest 对象:

巧妙范例  (1)

Import 一个 APIFunction

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

文本

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

CMS

Wolfram 语言. 2016. "HTTPRequest." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/HTTPRequest.html.

APA

Wolfram 语言. (2016). HTTPRequest. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/HTTPRequest.html 年

BibTeX

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

BibLaTeX

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