2

我正在尝试在 Rebol 中重写 C# 应用程序,以亲眼目睹可实现的生产力水平。

在我开始之前,我很想知道是否:

  • parse 函数可以做 Regex 可以做的所有事情

  • 可以使用端口模拟 HTTP(实际上是 HTTPS)会话!
    (这里的任何例子都很好,因为我似乎找不到任何例子)

  • 有任何方言可用于解析平面文件
    (包括 CSV、TSV、固定长度文件)

  • 有一些函数可以从 HTML 文件生成 PDF
    (或者只是填充现有的 PDF 表单)

谢谢!

编辑:

关于问题 #2,请允许我重新表述一下,我实际上希望能够在 HTTP 请求之间维护 cookie(实际上是一个 POST [将凭据发布到登录页面],然后是许多 GET,它们重新发送 POST 后收到的 cookie)。

我猜想使用 curl 的等价物是:

curl [url] -d [data] -c [file] 
curl [url] -b [file]

我想我的问题是我还不知道如何充分使用 HTTP 方案(阅读http://www.rebol.net/docs/prot-http.html)我在成功发布后看到一个 cookie这:

p: open http://localhost/test.php
write p "name=foo"
probe p/state/info/headers

但是接下来呢?如何与下一个请求一起重新发送此 cookie。

4

1 回答 1

3

parse 函数能做 RegEx 能做的所有事情吗?

Rebol 的 PARSE 属于“自顶向下解析语言 (TDPL)”系列。它应该比 RegEx 或 LL 解析器更强大。有关可能/不可能的详细信息,请参阅我对“您能否在 Rebol 中为 CSS2/CSS3 创建 PARSE 规则”问题的回答(A:是)

是否可以使用端口来模拟 HTTP(实际上是 HTTPS)会话!

您可以在 Rebol 中编写完整的 Web 服务器——正如 Cheyenne 所展示的那样……您可以在线浏览它的源代码。如果您想要一个更简单的示例,请查看Tiny Web Server 示例

关于通过 cookie 进行“会话管理”的具体问题,它并没有很好地记录如何做到这一点……而且无论好坏,我都不使用 Rebol 2。我的看法是,这是你的领域之一'将不得不感受版本之间的变化。

FWIW,这段代码在我在 Rebol 3 中编写的使用 cookie 的小脚本中为我工作:

    系统/方案/http/spec/headers:撰写[
        饼干:(会话cookie)
        referer: (to-string urlForEdit)
        内容类型:{application/x-www-form-urlencoded}
        用户代理:{Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3}
        缓存控制:{无缓存}
    ]

    要么真[
        系统/方案/http/spec/method: '发布
        系统/方案/http/spec/content:有效载荷字符串
        htmlResponse: to-string 读取 postUrl
    ] [
        # 这似乎等同于另一个分支...
        # 如果你的 WRITE 的目标是 URL 类型!然后它
        # 自动设置 spec/method 和 http/spec/content

        htmlResponse: to-string 写入 postUrl payloadString
    ]

是否有可用于解析平面文件的方言?

我不知道除 PARSE 之外的任何已发布方言,PARSE 通常用于将CSV 等内容转换为 Rebol 格式。然后程序以 Rebol 的形式对数据进行操作。一件不幸的事情是PARSE 不能在 PORT 上运行!因此,如果您的文件很大,您可能必须实现自己的缓冲解决方案。

是否有从 HTML 文件生成 PDF 的功能?

从 HTML 生成 PDF 或填写表单听起来像是一种交钥匙的事情,您可能需要调用外部维护的工具。但是 Gabriele Santilli 有一个项目可以从 Rebol PDF 方言生成合法的 PDF 文件:

http://web.tiscalinet.it/rebol/pdf-maker.r

有趣的是该库的文档是使用该库本身制作的 PDF 文件。如果您想查看用于创建它的方言代码,您可以将其与生成的结果并排查看!

http://web.tiscalinet.it/rebol/pdf-maker-doc.r

于 2011-04-28T19:27:49.267 回答