我正在尝试在SilkJS中为简单的HTTP请求设置标头..请求很好但没有我的标题..
curl.setHeader()方法只返回'undefined',从我在文档中可以读到的内容(http://www.silkjs.net/documentation/builtin/curl#curl-setHeader),它应该返回整数0表示成功,否则返回错误代码..是'undefined'某种错误代码?!
这是一个重现问题的简单测试:
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
答案 0 :(得分: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
...
答案 1 :(得分:0)
谢谢Nik。
参见本页:
http://silkjs.net/documentation/cURL
您正在使用最低级别的例程来访问curl。有一个更高级别的类访问curl,它具有JavaScript风格而不是“C”风格的过程风格。
任何内置的。*方法都是低级的,绝对没有错误检查。您可以将无效值作为参数传递给这些函数,程序将核心转储(崩溃)。
目的是编写执行错误检查的JavaScript类或接口,并调用内置方法。