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

ドキュメンテーションは悪く、ヘッダーを設定するための予想される方法「NAME: CONTENT」ではなく、Cookie「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 へのアクセスに最低レベルのルーチンを使用しています。「C」スタイルのプロシージャ スタイルではなく、JavaScript フレーバーを持つ、curl にアクセスするためのより高いレベルのクラスがあります。

builtin.* メソッドはすべて低レベルであり、エラー チェックはまったくありません。これらの関数にパラメーターとして無効な値を渡すと、プログラムがコア ダンプ (クラッシュ) します。

その意図は、エラー チェックを行い、組み込みメソッドを呼び出す JavaScript クラスまたはインターフェイスを作成することです。

于 2014-01-04T18:54:36.940 に答える