Rebol2的阅读/自定义文档?

时间:2016-12-08 19:34:02

标签: http twitter rebol2

我一直试图更新Ross-Gill的Twitter API for REBOL2以支持上传媒体。通过查看其来源,REBOL食谱,代码意识网站以及其他问题,我的理解是read/customPOST数据到网站的首选方式。

但是,我还没有找到关于read/custom的任何真实文档。例如:它是否支持发送multipart/form-data? (我已经设法通过手动编写每个部分来解决这个问题,但它似乎并不适用于Twitter的所有图像文件,并且有点像黑客)。 read/custom仅返回HTTP/1.0 200 OK响应中的文字吗? (看起来如此,当我收到HTTP/1.0 202 Accepted并需要读取结果数据时,这是有问题的)。是否有read/custom/binary似乎没有正确发送二进制数据而不使用to-string转换数据的原因?

TL; DR:在某处REBOL2 read/custom有没有很好的文档?或者,read/custom仅适用于基本POST,我应该使用端口并手动处理HTTP响应吗?

1 个答案:

答案 0 :(得分:0)

您猜对了,omega()仅用于简单的HTTP帖子,仅处理Web表单数据(这就是二进制数据失败的原因)。没有正式文件。但这不是问题,因为您可以访问HTTP实现的源代码:

read/custom

在那里,您可以看到probe system/schemes/HTTP 细化支持两个关键字/custompost(用于设置自定义HTTP标头)。即使您同时使用两个关键字,header也会被强制为Content-Type,无论如何(这可能是您的二进制数据被服务器拒绝的原因,因为提供的mime类型是错)。

为了解决这个问题,您可以保存HTTP对象,修改其实现以满足您的需求并重新加载。

保存:

application/x-www-form-urlencoded

重新加载:

save %http-scheme.r system/schemes/HTTP

如果您只是禁用HTTP代码中的硬编码system/schemes/HTTP: do load %http-scheme.r 设置,然后使用Content-Type关键字提供您自己的设置,它应该可以正常工作,即使使用二进制数据:

header

希望这有帮助。