[Java][JavaScript] env.jsでHTTPのPOSTメソッドが実装されていない?
env.jsはRhinoで利用できるwindowオブジェクトの実装.
とても便利に使わせていただいているのですが,どうもXmlHttpRequestのsend関数でHTTPのPOSTメソッドが実装されていない様子.
なので,POSTの部分だけとりあえず実装追加.
Rhinoでprotoype.js - みずぴー日記で変更された状態のenv.jsに対するdiffの形で
@@ -613,6 +613,11 @@ for (var header in self.headers) connection.addRequestProperty(header, self.headers[header]); + if(self.method == "POST") { + connection.setDoOutput(true); + var ps = new java.io.PrintStream(connection.getOutputStream()); + ps.print(new java.lang.String( data || "" )); + } connection.connect(); // Stick the response headers into responseHeaders
こんな風にしてとりあえず動くようになった.
後でもう少し調べて報告しておこうかな.
ところで,env.jsで`file://`スキームのURLにPUTするとファイル書き込みができるって仕様はちょっと面白かった.