一般に、プロジェクト開発中に外部インターフェイスへの呼び出しが発生することは避けられません。この記事では、ブラウザー要求をシミュレートするために Java バックグラウンドで HttpURLConnection クラスを呼び出す方法について説明します。インターフェース呼び出しに使用できます。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
次のようにコードをコピーします。
java.io.BufferedReaderをインポートします。
java.io.DataOutputStreamをインポートします。
インポートjava.io.InputStreamReader;
java.net.HttpURLConnectionをインポートします。
java.net.URLをインポートします。
java.net.URLEncoderをインポートします。
パブリック クラス HttpURLConnectionTest {
public static Final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
public static Final String POST_URL = "http://112.4.27.9/mall-back/if_user/store_list";
/**
* インターフェースは GET を呼び出します
*/
public static void httpURLConectionGET() {
試す {
URL url = new URL(GET_URL); // 文字列を URL リクエスト アドレスに変換します。
HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 接続をオープンします
connection.connect();//セッションに接続します
// 入力ストリームを取得する
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
文字列行;
StringBuilder sb = 新しい StringBuilder();
while ((line = br.readLine()) != null) {// ループ読み取りストリーム
sb.append(行);
}
br.close();//ストリームを閉じる
connection.disconnect(); // 接続を切断します
System.out.println(sb.toString());
} catch (例外 e) {
e.printStackTrace();
System.out.println("失敗しました!");
}
}
/**
* インターフェイスは POST を呼び出します
*/
public static void httpURLConnectionPOST () {
試す {
URL URL = 新しい URL(POST_URL);
//open メソッドによって返された urlConnection 接続を HttpURLConnection 接続に強制します (URL によって参照されるリモート オブジェクト接続を識別します)
HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 現時点では、cnnection は接続を待機している単なる接続オブジェクトです。
// 接続出力ストリームを true に設定します。デフォルトは false (ポストリクエストは暗黙的にストリームの形式でパラメータを渡します)
connection.setDoOutput(true);
// 接続入力ストリームを true に設定します
connection.setDoInput(true);
// 投稿するリクエストメソッドを設定します
connection.setRequestMethod("POST");
// ポストリクエストキャッシュは false に設定されます
connection.setUseCaches(false);
// HttpURLConnection インスタンスが自動的にリダイレクトを実行するかどうかを設定します
connection.setInstanceFollowRedirects(true);
//リクエストヘッダーに各属性を設定します(以下はコンテンツのタイプで、urlEncodedでエンコードされたfromパラメータに設定されます)
// application/x-javascript text/xml->xml data application/x-javascript->json object application/x-www-form-urlencoded->form data
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 接続を確立します (connection.getInputStream() メソッドが呼び出されるまでリクエストは開始されません。このメソッドの前に上記のパラメータ設定を行う必要があります)
接続.connect();
// 接続で伝送されるパラメータを出力するために使用される入出力ストリームを作成します (出力コンテンツは後のコンテンツです?)
DataOutputStream dataout = 新しい DataOutputStream(connection.getOutputStream());
String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //URLEncoder.encode() メソッドは文字列をエンコードします
// パラメータを接続に出力します
dataout.writeBytes(parm);
// 出力が完了したらストリームを更新して閉じます
データアウト.flush();
dataout.close(); // 重要だが無視されやすいステップ (ストリームを閉じることを忘れないでください)
System.out.println(connection.getResponseCode());
//接続はリクエストを開始し、サーバー応答を処理します(接続から入力ストリームを取得し、それをbufferedReaderとしてラップします)
BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream()));
文字列行;
StringBuilder sb = new StringBuilder() // 応答データの保存に使用されます。
// ストリームが最後まで到達しない場合は、ループでストリームを読み取ります
while ((line = bf.readLine()) != null) {
sb.append(bf.readLine());
}
bf.close(); // 重要だが無視されやすいステップ (ストリームを閉じることを忘れないでください!)
connection.disconnect(); // 接続を破棄します。
System.out.println(sb.toString());
} catch (例外 e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// httpURLConectionGET();
httpURLConnectionPOST();
}
}
この記事が皆さんの Java プログラミングに役立つことを願っています。