1

我正在尝试在 SilkJS 中为简单的 HTTP 请求设置标头。请求通过正常但没有我的标头。

curl.setHeader() 方法只返回“未定义”,从我在文档(http://www.silkjs.net/documentation/builtin/curl#curl-setHeader)中可以看到,它应该返回整数 0 表示成功或错误代码..是“未定义”某种错误代码?!

这是一个重现问题的简单测试:

SilkJS> var curl = require('builtin/curl');
undefined
SilkJS> curl
[object Object]
SilkJS> var handle = curl.init('http://www.google.com/')
undefined
SilkJS> handle
[object Object]
SilkJS> var status = curl.setHeader(handle, 'asdf=asdf')
undefined
SilkJS> status
undefined
4

2 回答 2

0

文档很糟糕,它描述了设置 cookie “NAME=CONTENT”的格式,而不是设置标题“NAME:CONTENT”的预期方式。

当我浏览源代码时,我注意到了这一点。

虽然状态标志仍然未定义,但现在我可以看到 HTTP 请求中存在标头:

SilkJS> var status = curl.setHeader(handle, 'asdf: asdf')
undefined
SilkJS> status
undefined
SilkJS> curl.perform(handle, 1)
* About to connect() to www.google.com port 80 (#0)
*   Trying 74.125.143.103... * connected
> GET / HTTP/1.1
User-Agent: SilkJS/1.0
Host: www.google.com
Accept: */*
asdf: asdf

< HTTP/1.1 302 Found
...
于 2014-01-04T10:58:05.133 回答
0

谢谢尼克。

请参阅此页面:

http://silkjs.net/documentation/cURL

您正在使用最低级别的例程来访问 curl。有一个更高级别的类用于访问具有 JavaScript 风格而不是“C”风格的过程风格的 curl。

内置的任何东西。*方法都是低级的,绝对没有错误检查。您可以将无效值作为参数传递给这些函数,您的程序将核心转储(崩溃)。

目的是编写 JavaScript 类或接口来进行错误检查,并调用内置方法。

于 2014-01-04T18:54:36.940 回答