0

Java HttpUrlConnection クラスを使用してサーバーにデータを投稿しようとしています。どうにかしてサーバーの応答を読み取れば投稿はうまくいくようですが、そうしないと情報が投稿されることはありません。

この種の動作は HttpUrlConnection doc には記載されておらず、私が見た HttUrlConnection のすべての例はサーバーからの応答を求めています。

コードを間違えたのか、それとも HttpUrlConnection の通常の動作なのかを知りたいのですが、もしそうなら、このクラスがどのように機能するかをよりよく理解している人がなぜそうなのかを説明してもらえますか?

どうもありがとう!

コードは次のとおりです。コメント行は、POST を機能または失敗させる行です。

URL url=new URL("myUrl");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
connection.setRequestProperty("Host", "myHost");
connection.setDoOutput(true);
os.write(staffToPost.getBytes("utf-8"));
os.flush();
os.close();
//System.out.println(connection.getResponseCode()+" "+connection.getResponseMessage());
4

2 に答える 2

2

クラスは、POST が発生するために完全なハンドシェイクを必要とします。URLCOnnectionつまり、接続を開いた後、POST が実際に行われるには応答を読み返す必要があります。

于 2012-05-15T05:04:27.327 に答える
0

URLConnection.connect()を明示的に呼び出すか、 HttpURLConnection.getResponseCodeなどの HTTP 応答に関する情報を取得して、HTTP 要求をトリガーすることができます。

理解を深めるために、java.net.URLConnection を使用して HTTP 要求を起動および処理する方法に関するこの包括的な投稿を参照する必要があります。

于 2012-05-15T04:39:27.047 に答える