[解決済み】HttpURLConnectionにNameValuePairを使用してPOSTでパラメータを追加する方法
2022-04-01 03:06:32
質問
を行おうとしています。
POST
と
HttpURLConnection
(この方法で使用する必要があります。
HttpPost
のようなパラメータを追加したい。
post.setEntity(new UrlEncodedFormEntity(nvp));
ここで
nvp = new ArrayList<NameValuePair>();
にデータが格納されています。これをどのように追加すればいいのかがわかりません。
ArrayList
に、私の
HttpURLConnection
はこちらです。
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
http = https;
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
https と http の組み合わせがぎこちないのは、そのために ベリファイしない 証明書 それはそれで問題ないのですが、サーバーをうまく投稿してくれます。しかし、私はそれが引数で投稿する必要があります。
何かアイデアはありますか?
免責事項が重複しています。
2012年当時、私はパラメータがどのように
HTTP POST
のリクエストに対応します。にぶら下がっていました。
NameValuePair
チュートリアルに載っていたからです。この質問は重複しているように見えるかもしれませんが、しかし、2012年の自分は、次のように読みました。
その他
の質問で、それは
NOT
を使って
NameValuePair
. 実際、私の問題を解決することはできませんでした。
解決方法は?
接続の出力ストリームを取得し、そこにパラメータのクエリ文字列を書き込むことができます。
URL url = new URL("http://yoururl.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close();
conn.connect();
...
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
StringBuilder result = new StringBuilder();
boolean first = true;
for (NameValuePair pair : params)
{
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}
return result.toString();
}
関連
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み] POSTフォームのフィールドにアクセスする方法
-
[解決済み] Node.jsでPOSTデータを処理する方法は?
-
[解決済み] XMLHttpRequestでPOSTデータを送信する
-
[解決済み] Java - POSTメソッドでHTTPパラメータを簡単に送信する
最新
-
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 Studioでパラメータ化されたユニットテストを実行すると、指定されたインクルードに対するテストが見つからないエラーが発生する
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み】起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み】Android Studio。Android.support.design.widget.FloatingActionButton クラスを膨らませるのにエラーが発生する。
-
[解決済み】android.content.res.Resources$NotFoundExceptionの取得:androidにリソースが存在する場合でも例外が発生する。
-
[解決済み] Android Fragment onAttach() 非推奨
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] Java - POSTメソッドでHTTPパラメータを簡単に送信する
-
[解決済み】AndroidでPOSTデータを送信する方法
-
[解決済み】JavaのKeyValuePair【重複あり