0

リソースを RESTful な方法で管理するための HTTP サーバーと、いくつかのクライアント (.NET、VBA) を作成しました。

MATLAB の RESTful API を使用する必要があったため、HttpUrlConnection を使用して Java クライアントを作成しました。

PUT 要求が POST 要求として受信された 1 人のユーザーを除いて、それを使用しているコンピューターで問題なく動作しました。

私のJAVAコードには以下が含まれます:

   HttpURLConnection  conn = (HttpURLConnection) url.openConnection();       
   conn.setDoOutput(true);
   conn.setDoInput(true);
   conn.setRequestMethod(Method);

setDoOutput(true) は HTTP メソッドを POST に設定することになっていることを読みましたが、メソッド = "PUT" で setRequestMethod(Method) を呼び出したため、ほとんどのステーションで機能し、それが唯一の方法であることがわかりました。 HttpURLConnection で PUT リクエストを送信します。何が問題なのかわかりません。

各 matlab クライアントは同じ 1.6 Java バージョンを実行します。

何が起こっているのかわからなかったので、Apache HTTP ライブラリに切り替えました (そして動作します) が、HttpURLConnection で何が起こっていたのだろうかと思います。

4

1 に答える 1

1

setDoOutput(true)がHTTPメソッドをPOSTに設定することになっていることを読みました

ドキュメントがこれについて言及していないので、これが間違っているとあなたに言った人は誰でも:

URL接続は、入力および/または出力に使用できます。出力にURL接続を使用する場合は、DoOutputフラグをtrueに設定し、使用しない場合はfalseに設定します。デフォルトはfalseです。

ご想像のとおり、このメソッドを使用setRequestMethod(method)てリクエストタイプを設定する必要があります。では、変数の値は何Methodですか?使ってみませんsetRequestMethod("PUT")か?

于 2013-01-17T17:34:18.270 に答える