Mercurial > hg > LGDataverses
annotate src/main/java/de/mpiwg/gazetteer/utils/HTTPUtils.java @ 14:be7787c36e58 default tip
new: nofity LGSercies for deleted files
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 02 Nov 2015 16:41:23 +0100 |
parents | |
children |
rev | line source |
---|---|
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 package de.mpiwg.gazetteer.utils; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 import java.io.BufferedReader; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 import java.io.IOException; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 import java.io.InputStreamReader; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 import java.net.HttpURLConnection; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 import java.net.URL; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 import javax.net.ssl.HttpsURLConnection; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10 import javax.net.ssl.SSLContext; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 import javax.net.ssl.SSLSocketFactory; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 import javax.net.ssl.TrustManager; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 import javax.net.ssl.X509TrustManager; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 import java.security.KeyManagementException; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 import java.security.NoSuchAlgorithmException; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 import java.security.cert.X509Certificate; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19 public class HTTPUtils { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 final static TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 @Override |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 public void checkClientTrusted( final X509Certificate[] chain, final String authType ) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 @Override |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 public void checkServerTrusted( final X509Certificate[] chain, final String authType ) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 @Override |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 public X509Certificate[] getAcceptedIssuers() { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 return null; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 } }; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 public static HttpStringResponse getStringResponse(String url) throws IOException, KeyManagementException, NoSuchAlgorithmException{ |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38 if(url.startsWith("https") || url.startsWith("HTTPS")) |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 return getHttpSSLStringResponse(url); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 return getHttpStringResponse(url); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 private static HttpStringResponse getHttpSSLStringResponse(String link) throws IOException, KeyManagementException, NoSuchAlgorithmException{ |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 // Install the all-trusting trust manager |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46 final SSLContext sslContext = SSLContext.getInstance( "SSL" ); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 sslContext.init( null, trustAllCerts, new java.security.SecureRandom() ); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 // Create an ssl socket factory with our all-trusting manager |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 URL url = new URL(link); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 HttpURLConnection httpConn = (HttpURLConnection)url.openConnection(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 ( (HttpsURLConnection) httpConn ).setSSLSocketFactory( sslSocketFactory ); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 BufferedReader in = null; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 if (httpConn.getResponseCode() >= 400) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 in = new BufferedReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 new InputStreamReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 httpConn.getErrorStream())); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 } else { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 in = new BufferedReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 new InputStreamReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 httpConn.getInputStream())); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 String inputLine; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 StringBuilder sb = new StringBuilder(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 while ((inputLine = in.readLine()) != null) |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 sb.append(inputLine + "\n"); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 in.close(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 return new HttpStringResponse(httpConn.getResponseCode(), sb.toString()); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 private static HttpStringResponse getHttpStringResponse(String link) throws IOException{ |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 //System.out.println(url); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
80 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
81 URL url = new URL(link); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
82 HttpURLConnection httpConn = (HttpURLConnection)url.openConnection(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
83 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 BufferedReader in = null; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 if (httpConn.getResponseCode() >= 400) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 in = new BufferedReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 new InputStreamReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 httpConn.getErrorStream())); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 } else { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 in = new BufferedReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 new InputStreamReader( |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 httpConn.getInputStream())); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
93 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
94 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
95 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
96 String inputLine; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
97 StringBuilder sb = new StringBuilder(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
98 while ((inputLine = in.readLine()) != null) |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
99 sb.append(inputLine + "\n"); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
100 in.close(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 return new HttpStringResponse(httpConn.getResponseCode(), sb.toString()); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 public static class HttpStringResponse{ |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
106 public int code; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
107 public String content; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
108 public HttpStringResponse(int code, String content){ |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
109 this.code = code; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
110 this.content = content; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
111 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
112 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
113 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
114 } |