[解決済み] Java - POSTメソッドでHTTPパラメータを簡単に送信する
2022-03-17 03:03:44
質問
以下のコードを使用して、うまく送信できています。
HTTP
を経由して、いくつかのパラメータを持つリクエストを
GET
メソッド
void sendRequest(String request)
{
// i.e.: request = "http://example.com/index.php?param1=a¶m2=b¶m3=c";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "text/plain");
connection.setRequestProperty("charset", "utf-8");
connection.connect();
}
ここで,パラメータ(param1, param2, param3)を
POST
メソッドを使用します。
私は、そのメソッドに追加のパラメータ(すなわち、文字列httpMethod)を追加することを考えていました。
上記のコードをできるだけ変更せずに、パラメータを
GET
または
POST
?
を変更することを望んでいました。
connection.setRequestMethod("GET");
になります。
connection.setRequestMethod("POST");
を使えばいいのですが、パラメータはまだGETメソッドで送信されています。
ハス
HttpURLConnection
は、何か役に立つメソッドがあるのでしょうか?
何か役に立つJavaの構成要素はありますか?
どんなことでもご相談ください。
解決方法は?
GETリクエストの場合、パラメータはURLの一部として送信されます。
POSTリクエストでは、パラメータはリクエストの本文として、ヘッダの後に送信されます。
HttpURLConnectionでPOSTを行うには、コネクションを開いた後に、コネクションにパラメータを書き込む必要があります。
このコードで始められるはずです。
String urlParameters = "param1=a¶m2=b¶m3=c";
byte[] postData = urlParameters.getBytes( StandardCharsets.UTF_8 );
int postDataLength = postData.length;
String request = "http://example.com/index.php";
URL url = new URL( request );
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setDoOutput( true );
conn.setInstanceFollowRedirects( false );
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty( "charset", "utf-8");
conn.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
conn.setUseCaches( false );
try( DataOutputStream wr = new DataOutputStream( conn.getOutputStream())) {
wr.write( postData );
}
関連
-
org.glassfish.jersey.servlet.ServletContainer
-
テストが見つかりませんでした
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
エラー java.util.NoSuchElementException
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
サーブレットクラスのインスタンス化エラーの解決法
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
HttpClientがGZIP形式でない場合の対処法
-
このラインで複数のマーカーを解決する方法
-
[解決済み】HttpURLConnectionにNameValuePairを使用してPOSTでパラメータを追加する方法