#問題
サンプルコードを基にHTTP通信を行いたいのですが、思い通りの実行結果になりません。始めは実行してエラーが出なかっただけで喜んでいたのですが、よくよく見たらHTTPステータスや取得したデータが表示されていないことに気づきました。これはサンプルコードのどこかがおかしいのか、URLに問題があるのかわかりません。まだ右も左も分かってないんですが分かる方ご教授お願い致します。
#サンプルコード
Java
1 2import java.io.IOException; 3import java.io.UnsupportedEncodingException; 4import java.nio.charset.Charset; 5import java.nio.charset.StandardCharsets; 6import org.apache.http.HttpStatus; 7import org.apache.http.client.ClientProtocolException; 8import org.apache.http.client.methods.CloseableHttpResponse; 9import org.apache.http.client.methods.HttpGet; 10import org.apache.http.impl.client.CloseableHttpClient; 11import org.apache.http.impl.client.HttpClients; 12import org.apache.http.util.EntityUtils; 13 14/** 15 * HttpClientsのサンプル 16 */ 17class Sample { 18 19 void runSample() { 20 Charset charset = StandardCharsets.UTF_8; 21 22 CloseableHttpClient httpclient = HttpClients.createDefault(); 23 HttpGet request = new HttpGet("http://httpbin.org/get"); 24 25 System.out.println 26 ("requestの実行 「" + request.getRequestLine() + "」"); 27 //requestの実行 「GET http://httpbin.org/get HTTP/1.1」 28 29 CloseableHttpResponse response = null; 30 31 try { 32 response = httpclient.execute(request); 33 34 int status = response.getStatusLine().getStatusCode(); 35 System.out.println("HTTPステータス:" + status); 36 //HTTPステータス:200 37 38 if (status == HttpStatus.SC_OK){ 39 String responseData = 40 EntityUtils.toString(response.getEntity(),charset); 41 System.out.println(responseData); 42 //取得したデータが表示される 43 } 44 } catch (ClientProtocolException e) { 45 e.printStackTrace(); 46 } catch (UnsupportedEncodingException e) { 47 e.printStackTrace(); 48 } catch (IOException e) { 49 e.printStackTrace(); 50 } finally { 51 try { 52 if (response != null) { 53 response.close(); 54 } 55 if (httpclient != null) { 56 httpclient.close(); 57 } 58 } catch (IOException e) { 59 e.printStackTrace(); 60 } 61 } 62 } 63} 64public class Test1 { 65 public static void main(String[] args) { 66 Sample s = new Sample(); 67 s.runSample(); 68 } 69}
#実行結果
#参考サイト
https://itsakura.com/java-httpclient
#追記
上がpingの確認、下がURLにアクセスして表示された画面です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/12 04:27
2018/01/12 04:48
2018/01/12 04:53
2018/01/12 05:00 編集
2018/01/12 05:08 編集
2018/01/12 05:29
2018/01/12 05:52 編集
2018/01/13 16:27