PUT-Request

Saheeda

Top Contributor
Hallo,

ich möchte gegen eine von mir erstellte REST-API einen PUT-Request durchführen.

Die Methode dafür sieht so aus:

Java:
	public String put(String path, Map<String, Object>parameters) throws IOException{
		String params = "";
		if (parameters != null) {
			for (Map.Entry<String, Object> entry : parameters.entrySet()) {
				if (entry.getValue() != null) {
					params += entry.getKey() + "="
							+ entry.getValue().toString() + "&";
				}
			}
			params = params.substring(0, params.length() - 1);
		}
		System.out.println(params);
                // Ausgabe:    surname=drei&contact_group=2	
		
		URL url = new URL(this.api + path);
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		connection.setDoOutput(true);
		connection.setDoInput(true);
		connection.setUseCaches(false);
		connection.setRequestMethod("PUT");
		connection.setRequestProperty("Content-Length",
				String.valueOf(params.length()));		
	
		OutputStreamWriter writer = new OutputStreamWriter(
				connection.getOutputStream());
		
		writer.write(params);
		writer.flush();		
		
		InputStream is = connection.getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(is));
		String response = reader.readLine();
		reader.close();
		writer.close();		
		return response;
	}

Exception:
java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8000/api/v0/contacts/2
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)

400 ist der code für eine fehlerhaft aufgebaute Nachricht, aber ich weiß nicht, was ich ändern muss.

Wenn ich "writer.flush()" entferne, fliegt zwar keine Exception mehr, aber auf Serverseite bekomme ich ein leeres Array.

Laut StackOverFlow sollte es so gehen. :bahnhof:

Falls das was bringt, die entsprechende Methode vom Server:
Code:
  public function putAction(Request $request, $id)
 {
        $parameter = $request->request->all();
        $surname = array_key_exists("surname", $parameter) ? $parameter["surname"] : "";
        $group = array_key_exists("contact_group", $parameter)? $parameter["contact_group"] : 1;

        foreach ($this->dummyEntities as $e) {
            if ($e->id == $id) {
                $e->surname = $surname;
                $e->contactGroup =$group;
                return $e;
            }
        }
        return null;
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
T curl request in java umwandeln Netzwerkprogrammierung 4
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

Ähnliche Java Themen

Neue Themen


Oben