ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: Java : HttpPost クラス
名前: lightbox
処理選択
パスワード

件名 Java : HttpPost クラス
名前 lightbox
コメント
@DIV
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;

public class HttpPost {

	// **********************************************
	// 指定した URL へ 任意の charset で処理
	// **********************************************
	public static String execute(String targetUrl,Map<String,String> param, String targetCharset) {

		StringBuffer web_data = new StringBuffer();

		try {

			// **********************************************
			// インターネットへの接続
			// **********************************************
			// 読み込む WEB上のターゲット
			URL url = new URL(targetUrl);
			// 接続オブジェクト
			https://docs.oracle.com/javase/jp/8/docs/api/java/net/HttpURLConnection.html(HttpURLConnection) http = (HttpURLConnection)url.openConnection();
			http.setDoOutput(true);
			// POST メソッド
			http.setRequestMethod("POST");
			// 接続
			http.connect();

			OutputStreamWriter osw = new OutputStreamWriter(http.getOutputStream());
			BufferedWriter bw = new BufferedWriter(osw);

			Iterator<String> it =  param.keySet().iterator();
			String key;
			String value;
			StringBuffer data = new StringBuffer();
			while(it.hasNext()) {
				key = it.next().toString();
				value = param.get(key);
				if ( !data.toString().equals("") ) {
					data.append("&");
				}
				data.append(String.format("%s=%s",key,URLEncoder.encode(value, targetCharset)));
			}

			System.out.println(data.toString());

			bw.write( data.toString() );
			bw.close();
			osw.close();

			// **********************************************
			// ストリームとして読み込む準備
			// **********************************************
			// 以下読み込み3点セット InputStream / InputStreamReader / BufferedReader
			InputStream input_stream = http.getInputStream();
			// UTF-8 でリーダーを作成
			InputStreamReader input_stream_reader = new InputStreamReader(input_stream, targetCharset);
			// 行単位で読み込む為の準備
			BufferedReader buffered_reader = new BufferedReader(input_stream_reader);

			// **********************************************
			// 行の一括読み込み
			// **********************************************
			String line_buffer = null;
			// BufferedReader は、readLine が null を返すと読み込み終了
			while ( null != (line_buffer = buffered_reader.readLine() ) ) {
				// コマンドプロンプトに表示
				web_data.append( line_buffer );
				web_data.append( "\n" );
			}

			// **********************************************
			// 接続解除
			// **********************************************
			http.disconnect();
		}
		catch(Exception e) {
			// 失敗
			System.out.println( "インターネットへのアクセスに失敗しました" );
			e.printStackTrace();
		}
		return web_data.toString();
	}


}
@END