curl request in java umwandeln

themazreku1

Mitglied
Hallo Zusammen

Ich habe folgende cURL request:

curl -ikX POST -d "{\"outboundSMSMessageRequest\":{\"senderAddress\":\"tel:+40000000000\", \"address\":[\"tel:+4179xxxxxxx\"],\"outboundSMSTextMessage\":{\"message\":\"The Message\"},\"clientCorrelator\":\"any id\"}}" -H "Content-Type:application/json" -H "Accept:application/json" -H "client_id: %YOUR_CLIENT_ID%" https://api.swisscom.com/v1/messaging/sms/outbound/tel:+40000000000/requests

Meine Aufgabe ist es, dass in Java zu realisierten, also eine Java Klasse zu schreiben.

Ich habe folgende Java-Klasse geschrieben:

Java:
package sms;
 
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
 
import com.google.gson.Gson;
 
 
/**
 * 
 * @author Behar
 * Sms senden 
 */
public class Sms {
    
     private String to;  //Telefonnummer
     private String text; //Nachricht
     private int tokenLength;  //??
     private String expireTime; //?
      
    
    
     /**
      * @param apiKey
      * @param sms
      * @throws IOException 
      */
     public static void senden (String apiKey, Sms sms) throws IOException {
         try{
              //Json Parameter erstellen 
              Gson gson = new Gson();
              String json = gson.toJson(sms);
             
              //URL 
              URL url = new URL("https://api.swisscom.com/v1/"); 
             
              //Verbindung offnen 
              HttpURLConnection con = (HttpURLConnection) url.openConnection();
             
              //Methode
              con.setRequestMethod("POST");
              //Header setezn 
              con.setRequestProperty("client_id", apiKey);
              con.setRequestProperty("Accept", "application/json; charset=utf-8");
              con.setRequestProperty("Content-Type", "application/json; charset=utf-8");
             
              con.setDoOutput(true);
             
              //Json data im Body hinzufügen 
              DataOutputStream wr = new DataOutputStream(con.getOutputStream());
             String param = "json=" + URLEncoder.encode(json, "UTF-8");
             wr.write(param.getBytes());
            
             System.out.println(json);
             wr.flush();
             wr.close();
            
          // Get the response
            int responseCode = con.getResponseCode();
            System.out.println("\nSending 'POST' request to URL : " + url);
            System.out.println("Response Code : " + responseCode);
 
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
 
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
 
            // 7. Print result
            System.out.println(response.toString());
             
         }
         catch (MalformedURLException e) {
               e.printStackTrace();
         }
        
     } 
    
     //Getter und  Setter Methoden 
    
     /**
      * 
      * @return Nachricht 
      */
     public String getTo() {
         return to;
     }
    
     /**
      * 
      * @param to Telefonnummer des Senders 
      */
     public void setTo(String to) {
         this.to = to;
     }
    
     /**
      * @return Nachricht
      */
     public String getText() {
         return text;
     }
    
     public void setText(String text) {
         this.text = text;
     }
    
     public int getTokenLength() {
         return tokenLength;
     }
    
     public void setTokenLength(int tokenLength) {
         this.tokenLength = tokenLength;
     }
    
     public String getExpireTime() {
         return expireTime;
     }
    
     public void setExpireTime(String expireTime) {
         this.expireTime = expireTime;
     }
 
}

Leider funktioniert die Klasse nicht ganz.
Ich bekomme Response Code : 400

Ich glaube es stimmt mit den Parametern etwas nicht.

Klasse senden:

Java:
[COLOR=#931A68]package[COLOR=#000000] sms;[/COLOR][/COLOR]


[COLOR=#931a68]import[/COLOR] java.io.IOException;


[COLOR=#931A68]public[COLOR=#000000] [/COLOR]class[COLOR=#000000] [/COLOR][COLOR=#000000][U]Send[/U][/COLOR][COLOR=#000000] {[/COLOR][/COLOR]
	
	[COLOR=#931a68]public[/COLOR] [COLOR=#931a68]static[/COLOR] [COLOR=#931a68]void[/COLOR] [U]main (String [] arg) [/U][COLOR=#931a68][U]throws[/U][/COLOR][U] IOException[/U] {
	
		Sms sms = [COLOR=#931a68]new[/COLOR] Sms(); 
		sms.setText([COLOR=#3933ff]"Hallo Test"[/COLOR]);
		sms.setTo([COLOR=#3933ff]"+41791749697"[/COLOR]);
		sms.setTokenLength(8);
		sms.setExpireTime([COLOR=#3933ff]"60"[/COLOR]);
		
		Sms.senden([COLOR=#3933ff]"?? :)"[/COLOR], sms);
	}


}

Ich wäre euch sehr dankbar wenn ihr mir weiterhelfen könntet

Danke im Voraus!
 
Zuletzt bearbeitet:

themazreku1

Mitglied
Das benutze ich doch!

//Json Parameter erstellen
Gson gson = new Gson();
String json = gson.toJson(sms);

//URL
URL url = new URL("https://api.swisscom.com/v1/");

//Verbindung offnen
HttpURLConnection con = (HttpURLConnection) url.openConnection();

//Methode
con.setRequestMethod("POST");
//Header setezn
con.setRequestProperty("client_id", apiKey);
con.setRequestProperty("Accept", "application/json; charset=utf-8");
con.setRequestProperty("Content-Type", "application/json; charset=utf-8");

con.setDoOutput(true);

//Json data im Body hinzufügen
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
String param = "json=" + URLEncoder.encode(json, "UTF-8");
wr.write(param.getBytes());

System.out.println(json);
wr.flush();
wr.close();
 
Zuletzt bearbeitet:

fhoffmann

Top Contributor
du benutzt eine HttpURLConnection (ohne "s")
Da die URL mit "https" beginnt, kannst du auch zu einer HttpsURLConnection casten:
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
 

themazreku1

Mitglied
Achso, ja danke
Ich habe es geändert, aber ich bekomme trotzdem ein Response Code : 401

Es stimmt mit dem Request etwas nicht.

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 401 for URL: https://api.swisscom.com/v1/
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1514)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1508)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1162)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
at sms.Sms.senden(Sms.java:73)
at sms.Send.main(Send.java:15)
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://api.swisscom.com/v1/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1459)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
at sms.Sms.senden(Sms.java:68)
... 1 more
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N CURL requests in Java Netzwerkprogrammierung 6
V Unterschied zwischen cURL und HttpURLConnection?? Netzwerkprogrammierung 2
A curl.exe Internetzugriff Netzwerkprogrammierung 9
Thallius HTTP Kann man den Raw HTTPS Request irgendwie ausgeben lassen? Netzwerkprogrammierung 6
O HTTP Wer hilft mit meinem UTF-8 http Request ? Netzwerkprogrammierung 1
J API Aufruf mit GET Request und HMAC Netzwerkprogrammierung 3
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
N Post u Head Request an Server Netzwerkprogrammierung 4
M http request and response Netzwerkprogrammierung 0
J Json von Html request einlesen Netzwerkprogrammierung 0
S PUT-Request Netzwerkprogrammierung 0
P Java Deauth / Deauthentication request Netzwerkprogrammierung 10
C Android: Json-POST Request zu REST Webservice Netzwerkprogrammierung 2
R Seltsames Verhalten bei GET Request Netzwerkprogrammierung 7
Y HTTP No request data found Netzwerkprogrammierung 2
B Socket HTTP-Request führt zu Endlosschleife Netzwerkprogrammierung 5
B Post Request in Java Netzwerkprogrammierung 11
D OT JavaScript JQuery AJAX Request Netzwerkprogrammierung 2
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
O Http request Netzwerkprogrammierung 7
T HTTP POST Request Netzwerkprogrammierung 3
E HTTP Request? Netzwerkprogrammierung 4
L Body eines http Request auslesen Netzwerkprogrammierung 2
K Ende eines HTTP Response/Request Netzwerkprogrammierung 6
D http request Netzwerkprogrammierung 11
ARadauer POST Request absetzen.. Netzwerkprogrammierung 3
J GET Request Netzwerkprogrammierung 1
hdi POST Request (HttpConnection) Netzwerkprogrammierung 6
G HTTP-Request InputStream-Problem Netzwerkprogrammierung 5
J 403 error bei POST request Netzwerkprogrammierung 3
G auf http-request antworten. Netzwerkprogrammierung 3
G JMS Objektzugriff Request Reply erzeugt lediglich Kopie Netzwerkprogrammierung 4
L Java HTTP Request Netzwerkprogrammierung 3
S HTTP Request erstellen Netzwerkprogrammierung 2
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
B lange Strings in http-Request? Netzwerkprogrammierung 3
M erst POST dann Http-Request über URLConnection Netzwerkprogrammierung 3
m@nu Ende von Stream bei HTTP-Request Netzwerkprogrammierung 3
D HTTP Request erstellen (Form Name übergeben!) Netzwerkprogrammierung 3
P Easy Http Request Netzwerkprogrammierung 9
A HTTPS-Request via Proxy mit Konfigurationsskript Netzwerkprogrammierung 3
J HTTP-POST-Request mit Anhang über Socket Netzwerkprogrammierung 2
Z HTTP Request Netzwerkprogrammierung 3
A http request per socket an apache server Netzwerkprogrammierung 5
M Ein HTTP-request aus Java heraus senden Netzwerkprogrammierung 3
J HTTP Request Netzwerkprogrammierung 2
B Laden einer *.csv Datei von einem Webserver (http-request) Netzwerkprogrammierung 8
C dhcp request Netzwerkprogrammierung 16
D Bad Request bei Dateiload Netzwerkprogrammierung 2
X mehrere Request über eine HttpURLConnection Netzwerkprogrammierung 2
G Http Request Netzwerkprogrammierung 2
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
S Java Chat Server Netzwerkprogrammierung 8
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben