HTTP Wer hilft mit meinem UTF-8 http Request ?

Diskutiere Wer hilft mit meinem UTF-8 http Request ? im Netzwerkprogrammierung Bereich.
O

osix

Hallo Java-Freunde,

Wer hilft mir mit diesem Code.
Es ist ein Beispielprogramm, aber nicht ganz zu Ende geführt.

Kann jemand das so ergänzen, daß es funktioniert, also was muß "billingMethod" sein ?

"request" ist auch nicht definiert.

die URL ist nur zum testen drin, da schreib ich meine richtige rein, das ist klar.

Danke für die Hilfe !


package http_requestdemo2;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

public class Http_RequestDemo2 {

public static void main(String[] args)
{
String someUrl="http://test.de";
HttpClient client = new HttpClient();
PostMethod postMethod = new PostMethod( someUrl );
postMethod.getParams().setContentCharset("utf-8"); // (!) hier wird das encoding gesetzt
postMethod.addParameter("data", "Testdaten auch jetzt mit Umlauten Ö Ä möglich");

int returnCode = client.executeMethod( billingMethod );
String responseStr = request.getResponseBodyAsString(); // wenn man sicher ist, text zurueckzubekommen
}

}
 
6

687b46c0da97

Hallo osix,
ich habe mir einmal deinen Code angeschaut und folgende Änderungen eingefügt:
  • Try-Catch (Um keine Kompilierungsfehler zu erzeugen)
  • client.executeMethod muss als Parameter dein "postMethod" Objekt bekommen. Das postMethod objekt, benutzt du, um den Request an den Server zu definieren und die Antwort zu verarbeiten.
  • Die Antwort wird nun ordentlich verarbeitet

Wichtig wäre in der Zukunft zu wissen, welche Version von httpclient du nutzt.

Java:
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;

import java.io.IOException;

public class Http_RequestDemo2 {

    public static void main(String[] args) {
        String someUrl="http://test.de";
        HttpClient client = new HttpClient();
        PostMethod postMethod = new PostMethod( someUrl );
        postMethod.getParams().setContentCharset("utf-8"); // (!) hier wird das encoding gesetzt
        postMethod.addParameter("data", "Testdaten auch jetzt mit Umlauten Ö Ä möglich");

        String responseStr = null;
        try {
            int returnCode = client.executeMethod( postMethod );
            if(returnCode != HttpStatus.SC_OK){
                System.out.println("HTTP call failed: " + postMethod.getStatusLine());
            }

            responseStr = new String(postMethod.getResponseBody());
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("Response: " + responseStr);
    }
}
Das Problem welches ich sehe, ohne dir zu nahe treten zu wollen ist, dass ich glaube dass dir ein Grundverständnis über HTTP fehlt. Dabei hilft es leider nicht Code von anderen Seiten zu kopieren. Ich würde dir deshalb folgenden Ansatz nahelegen:
  • Was für einen HTTP Request möchte ich absetzen und was bedeutet das? (Unterschiede der HTTP methoden POST vs GET zum Beispiel; Welcher Content-Type wird verarbeitet?; Wie funktioniert HTTP (STATUS, ...))
  • Generell hilft es oft, einmal einen HTTP Request & Antwort in einem HTTP Client abzusetzen, um dort zu sehen: Welche informationen werden denn übertragen und wie sieht das Protokoll aus? Danach ist es meist einfacher, das programmatisch umzusetzen

Der Code oben, muss nicht zwangsweise funktionieren, nachdem es hier Abhängigkeiten zum Server (Content Type, ...) gibt und ggf. der POST Payload falsch übertragen wird.
 
Thema: 

Wer hilft mit meinem UTF-8 http Request ?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben