コメント |
@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 |