私はAdobe Illustrator ScriptからHTTPリクエストを作成しようとしていますが(この質問は実際はJSX関連ではありませんが)、BridgeTalk経由でソケット接続を使ってローカルのRailsアプリケーションにあなたが見ているように - それは間違っている可能性があります;))。HTTP: "ERROR bad Request-Line"
が最後に通過要求を取得するために管理しますが、Railsのアプリがエラーをスロー:
ERROR bad Request-Line `GET /test.json HTTP/1.1'.
現在、特別なヘッダが送信されません - セットアップは非常に簡単です:
var connection = new Socket;
var response = '';
var host = '127.0.0.1:3000';
var path = '/test.json';
var method = 'GET';
var request = method + " " + path + " HTTP/1.1";
if (connection.open(host)) {
connection.write(request);
response = connection.read(999999);
} else {
$.writeln('Socket connection failed.');
}
connection.close();
私はリクエストが不正であると仮定していますが、何が期待されているのか分かりません。
RailsアプリはWEBrickで動作します。
ここでRailsが期待していることについての助力やヒントがあれば、大歓迎です。 \r\n
:
アップデートは
WEBrickには、要求行の末尾でキャリッジリターンを期待しているようです。
残念ながらBridge内でBridgeTalkを使用しており、上記の関数でuneval()
またはtoSource()
を使用する必要があります。これらは、同じエラーの原因となっ
GET /test.json HTTP/1.1\\r\\n
に
GET /test.json HTTP/1.1\r\n
変換、バックスラッシュをエスケープするように見えます。
アイデア?
これをしばらくやめてしまったのですが、接続を "BINARY"、 'connection.open(host、" BINARY ")'として開くと、URLエンコードされた文字列を避けることができます。ツールガイド: 'CRLFシーケンスは、エンコードがBINARYに設定されていない限り、LFに変換されます。 ' – spencewah
ありがとう!私はチャンスがあれば、それを行こう。 – polarblau