POST-Requests mit Java senden
Ich hatte letztens das Problem, dass ich via Java mehrere POST-Parameter an einen Server senden musste. Dazu fand ich viele Lösungen im Netz, allerdings auch eine Menge, die nicht funktioniert haben. Daher poste ich mal hier meine Lösung, vielleicht kann sie ja mal jemand gebrauchen.
Hier ist die Klasse PostConnection:
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 |
//package net.mborm.NetTools; import java.io.BufferedReader; import java.io.OutputStreamWriter; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.lang.StringBuilder; /** * Senden von Post-Requests * * @author Maximilian Borm * @version 1.1 */ public class PostConnection { private String _address, _output; private URLConnection _conn; public PostConnection(String address) { this._address = address; } public void request(String... keys) { String format = ""; for(int i = 0; i < keys.length; i+=2) format += String.format("%s=%s&", keys[i], keys[i+1]); try { URL url = new URL(this._address); this._conn = url.openConnection(); this._conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(this._conn.getOutputStream()); wr.write(format); wr.flush(); } catch(Exception e) { e.printStackTrace(); } } public String response() { try { BufferedReader reader = new BufferedReader(new InputStreamReader(this._conn.getInputStream())); StringBuilder sb = new StringBuilder(); String line = null; while((line = reader.readLine()) != null) sb.append(line + "\n"); this._output = sb.toString(); reader.close(); return this._output; } catch(Exception e) { e.printStackTrace(); return null; } } } |
Und so kann man die Klasse als Beispiel nutzen:
1 2 3 4 5 6 7 8 9 10 11 |
//import net.mborm.NetTools.PostConnection; public class TestPost { public static void main(String[] args) { String url = "https://mborm.net/Test.php"; PostConnection con = new PostConnection(url); con.request("parameter1", "value1", "parameter2", "value2"); String response = con.response(); System.out.println(response); } } |
Veröffentlicht am 28. Juni 2015 von admin in Java, Programmierung