我正在努力在Rebol中重写一个C#应用程序,亲眼看到可实现的产品水平。
我很想知道在我先跳头之前是否:
解析功能可以完成Regex所能做的所有事情
可以使用端口模拟HTTP(实际上是HTTPS)会话! (这里的任何例子都很好,因为我似乎找不到任何例子)
有任何方言可用于解析平面文件
(包括CSV,TSV,固定长度文件)
有从HTML文件生成PDF的功能
(或只填充现有的PDF表格)
谢谢!
修改
问题#2,请允许我改写一下,我实际上希望能够在HTTP请求之间维护cookie(实际上,POST [将凭据发布到登录页面],然后是许多重新发送POST后收到的cookie的GET )。
我猜使用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以及下一个请求。
答案 0 :(得分:3)
解析功能可以执行RegEx可以执行的所有操作吗?
Rebol的PARSE属于“自上而下的解析语言(TDPL)”系列。它应该比RegEx或LL解析器更强大。有关可能/不可能的细分,请参阅我对问题的回答"Can you create PARSE rules for CSS2/CSS3 in Rebol"(答:是)
是否可以使用端口模仿HTTP(实际上是HTTPS)会话!
您可以在Rebol中编写完整的Web服务器 - 如Cheyenne所示......您可以browse its source code online。如果您想要一个更简单的示例,请查看Tiny Web Server Sample。
关于"session management"通过cookie的具体问题,如何做到这一点并没有很好的记录......无论好坏,我都不使用Rebol 2.我认为这是其中之一您必须感受到版本之间变化的区域。
FWIW,这段代码在我用Rebol 3写的一个使用cookies的小脚本中为我工作:
system/schemes/http/spec/headers: compose [ cookie: (session_cookie) referer: (to-string urlForEdit) content-type: {application/x-www-form-urlencoded} user-agent: {Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3} cache-control: {no-cache} ] either true [ system/schemes/http/spec/method: 'post system/schemes/http/spec/content: payloadString htmlResponse: to-string read postUrl ] [ # this seems to be equivalent to the other branch... # if the target of your WRITE is of type URL! then it # automatically sets spec/method and http/spec/content htmlResponse: to-string write postUrl payloadString ]
是否有可用于解析平面文件的方言?
我不知道PARSE以外的任何已发布的方言,它通常用于get things like CSV into Rebol formats。然后程序将数据作为Rebol运行。一个不幸的事是PARSE doesn't run on PORT!所以如果你的文件很大,你可能必须实现自己的缓冲解决方案。
是否有从HTML文件生成PDF的功能?
从HTML生成PDF或填写表单听起来像是一种交钥匙的东西,你可能想要调用外部维护的工具。但是Gabriele Santilli有一个项目,它使用Rebol PDF方言生成合法的PDF文件:
http://web.tiscalinet.it/rebol/pdf-maker.r
使用库本身创建的库is a PDF file的文档很有趣。如果您想查看用于创建它的方言代码,您可以将其与生成的结果并排查看!