POST リクエストを受け入れる「page.php」などのサーバー側スクリプトにデータを送信するには、次の手順に従います。 :
リクエスト初期化:
URL オブジェクトをインスタンス化し、接続を開きます:
URL aaa = new URL("http://www.example.com/page.php"); URLConnection ccc = aaa.openConnection();
POST セットアップ:
POST を許可するように接続を構成しますデータ送信:
ccc.setDoOutput(true); ccc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
クエリパラメータ エンコーディング:
リクエスト パラメータ (例: id=10) をエンコードされたクエリ文字列に変換します:
String data = "id=" + URLEncoder.encode("10", "UTF-8");
データ送信:
接続の出力にデータを書き込みますストリーム:
OutputStreamWriter wr = new OutputStreamWriter(ccc.getOutputStream()); wr.write(data); wr.flush();
応答処理:
サーバーの応答の取得と処理:
BufferedReader br = new BufferedReader(new InputStreamReader(ccc.getInputStream())); String response = br.readLine();
更新された回答:
Apache HTTP を使用する Java プログラマー向けコンポーネント。最新の方法には HttpClients と HttpPost が含まれます。パラメータは NameValuePair リストとして渡され、UrlEncodedFormEntity にエンコードされて、サーバーに送信されます。
HttpClient httpclient = HttpClients.createDefault(); HttpPost httppost = new HttpPost("http://www.a-domain.example/foo/"); List<NameValuePair> params = new ArrayList<>(2); params.add(new BasicNameValuePair("param-1", "12345")); params.add(new BasicNameValuePair("param-2", "Hello!")); httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); if (entity != null) { try (InputStream instream = entity.getContent()) { // Process the response here. } }
詳細については、Apache HTTP コンポーネントのドキュメントを参照してください。
以上がJava で HTTP POST リクエストを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。