如何使用 Rebol 3 传递 URL cookie?
How do I pass a URL a cookie using Rebol 3?
使用 R3,我需要从使用 cookie 处理此问题的网站获取页面的本地化版本。在 REBOL 2.x 中,我可以这样做:
page: http://www.rci.com/resort-directory/resortDetails?resortCode=0450
read/custom page [header [Cookie: "USER_LOCALE=fr_FR"]]
根据 R3 的粗略文档,我应该能够做一些事情,比如:
result: write page [GET [Cookie: "USER_LOCALE"] {fr_FR}]
有人有什么想法吗? R2 方法运行良好,但由于 R2 无法处理许多外语所需的 UTF-8,因此在这里对我来说用处不大。
** 更新 **
对于我的示例,R2 中的解决方案(重述)是:
Assemblecookie中需要的参数:
cookie-str: "USER_LOCALE=fr_FR; USER_COUNTRY=US"
然后将cookie注入header
page-code: read/custom page reduce compose/deep ['header [Cookie: (cookie-str)]]
我在 R3 中的示例的解决方案是:
page-code: to-string write page reduce compose/deep ['GET [Cookie: (cookie-str)]]
你的尝试差不多了。每当您需要配置有关正在发送的 HTTP 请求的某些内容时,您可以在参数块中使用带有小 "HTTP dialect" 的 WRITE。该方言的第一项是要使用的 HTTP 方法,第二项(如果存在)是要一起发送的 HTTP headers 块。
如果我对您的示例的理解正确,您希望发送一个带有 "USER_LOCALE=fr_FR" 的 cookie 作为有效负载。所以你会这样做:
write page [GET [Cookie: {USER_LOCALE=fr_FR}]]
让我们针对 httpbin:
进行测试
>> print to-string write http://httpbin.org/headers [GET [Cookie: "USER_LOCALE=fr_FR"]]
{
"headers": {
"Accept": "*/*",
"Accept-Charset": "utf-8",
"Cookie": "USER_LOCALE=fr_FR",
"Host": "httpbin.org",
"User-Agent": "REBOL"
}
}
使用 R3,我需要从使用 cookie 处理此问题的网站获取页面的本地化版本。在 REBOL 2.x 中,我可以这样做:
page: http://www.rci.com/resort-directory/resortDetails?resortCode=0450
read/custom page [header [Cookie: "USER_LOCALE=fr_FR"]]
根据 R3 的粗略文档,我应该能够做一些事情,比如:
result: write page [GET [Cookie: "USER_LOCALE"] {fr_FR}]
有人有什么想法吗? R2 方法运行良好,但由于 R2 无法处理许多外语所需的 UTF-8,因此在这里对我来说用处不大。
** 更新 **
对于我的示例,R2 中的解决方案(重述)是:
Assemblecookie中需要的参数:
cookie-str: "USER_LOCALE=fr_FR; USER_COUNTRY=US"
然后将cookie注入header
page-code: read/custom page reduce compose/deep ['header [Cookie: (cookie-str)]]
我在 R3 中的示例的解决方案是:
page-code: to-string write page reduce compose/deep ['GET [Cookie: (cookie-str)]]
你的尝试差不多了。每当您需要配置有关正在发送的 HTTP 请求的某些内容时,您可以在参数块中使用带有小 "HTTP dialect" 的 WRITE。该方言的第一项是要使用的 HTTP 方法,第二项(如果存在)是要一起发送的 HTTP headers 块。
如果我对您的示例的理解正确,您希望发送一个带有 "USER_LOCALE=fr_FR" 的 cookie 作为有效负载。所以你会这样做:
write page [GET [Cookie: {USER_LOCALE=fr_FR}]]
让我们针对 httpbin:
进行测试>> print to-string write http://httpbin.org/headers [GET [Cookie: "USER_LOCALE=fr_FR"]]
{
"headers": {
"Accept": "*/*",
"Accept-Charset": "utf-8",
"Cookie": "USER_LOCALE=fr_FR",
"Host": "httpbin.org",
"User-Agent": "REBOL"
}
}