1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package httpsrequesttest;
import java.io.BufferedReader;
//import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import javax.net.ssl.HttpsURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import java.util.Map;
public class HttpURLConnectionExample {
//private static final String USER_AGENT = "google";
private static final String ICAO = "LFBO LFMK";
private static final String REPORTTYPE = "Raw";
private static final String ACTIONTYPE = "notamRetrievalByICAOs";
private static final String BUTTON = "Check All NOTAMs";
private static final String SUBMIT = "View NOTAMs";
private static final String POST_URL = "https://www.notams.faa.gov/dinsQueryWeb/queryRetrievalMapAction.do";
//. private static final String POST_PARAMS = "POST";
public static void main(String[] args) throws IOException {
sendPOST();
System.out.println("POST DONE");
}
private static void sendPOST() throws IOException {
URL obj = new URL(POST_URL);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
/*con.setRequestMethod("POST");
//con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("retrieveLocId", ICAO );
con.setRequestProperty("reporType", REPORTTYPE );
con.setRequestProperty("actionType", ACTIONTYPE );
con.setRequestProperty("button", BUTTON );
con.setRequestProperty("submit", SUBMIT );
con.
// For POST only - START
con.setDoOutput(true);
try //(DataOutputStream os = new DataOutputStream( con.getOutputStream())) {
// wr.write(POST_PARAMS);
(OutputStream os = con.getOutputStream()) {
os.write(POST_PARAMS.getBytes());
//os.flush();
// For POST only - END
}*/
Map<String,Object> parameters = new LinkedHashMap<>();
parameters.put("retrieveLocId", ICAO);
parameters.put("reporType", REPORTTYPE);
parameters.put("actionType", ACTIONTYPE);
parameters.put("button", BUTTON);
parameters.put("submit", SUBMIT);
post(con,parameters,StandardCharsets.ISO_8859_1);
int responseCode = con.getResponseCode();
System.out.println("POST Response Code :: " + responseCode);
if (HttpsURLConnection.HTTP_OK == responseCode) { StringBuffer response;
try ( //success
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()))) {
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
}
//print result
System.out.println(response.toString());
} else {
System.out.println("POST request not worked");
}
}
public static void post(HttpURLConnection con, Map<String, Object> parameters, Charset charset) throws IOException {
con.setRequestMethod("POST");
StringBuilder postdata = new StringBuilder();
for (Map.Entry<String, Object> parameter : parameters.entrySet() ) {
if (postdata.length() != 0) {
postdata.append('&');
}
postdata.append(URLEncoder.encode(parameter.getKey(), charset));
postdata.append('=');
postdata.append(URLEncoder.encode(String.valueOf(parameter.getValue()), charset));
}
byte[] content = postdata.toString().getBytes(charset);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(content.length));
con.setDoOutput(true);
try (OutputStream outputstream = con.getOutputStream()) {
outputstream.write(content);
}
}
void sendGet() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
void sendPost() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
} |
Partager