Socket XML-Daten und Parameter an Server schicken

sheepy

Mitglied
Hey Leute,
ich möchte gerne mittels eines HTTP-Sockets XML Daten und einen Parameter an einen Server schicken.

Ich habe hier folgenden Code:

Java:
try {
//XML, das übermittelt werden soll
          String xmldata = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + 
          "<feedback>"+
          "<type>wrong_position</type>"+
          "<link href=\"http://api.qype.com/v1/places/67370\" rel=\"http://schemas.qype.com/place\"/>"+
          "<comment><![CDATA[This place contains offending text]]></comment>"+
        "</feedback>";
 
          //Create socket
          String hostname = "api.qype.com";
          int port = 80;
          Socket sock = new Socket(hostname, port);
          //Send header
          String path = "/v1/feedbacks";
          System.out.println(path);
          BufferedWriter  wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(),"UTF-8"));
          // You can use "UTF8" for compatibility with the Microsoft virtual machine.
          wr.write("POST" + path + " HTTP/1.0\r\n");
          wr.write("Host: api.qype.com\r\n");
          wr.write("Content-Length: " + xmldata.length() + "\r\n");
          wr.write("Content-Type: text/xml; charset=\"utf-8\"\r\n");
          wr.write("\r\n");
    			
          //Send data
          wr.write(xmldata);
          wr.flush();
    			
          // Response
          BufferedReader rd = new BufferedReader(new InputStreamReader(sock.getInputStream()));
          String line;
          while((line = rd.readLine()) != null)
    	System.out.println(line);
        } catch (Exception e) {
          e.printStackTrace();
        }

Die XML-Datei wird ja denk ich mal überliefert.

Nun ist die Frage wie ich den Parameter übergebe.
Das Socket benötige ich um an die API von Qype etwas senden zu können
(siehe hier)
Der Parameter soll ein Autorisierungstoken von OAuth sein.

Ich habe es schon versucht, indem ich den Parameter einfach an die URI angehängt habe. Doch scheinbar geht dies nicht. (ich bekomme immer einen 401-Error "Invalid OAuth Request")

Hat da jemand eine Idee? :)

Grüße sHeepy
 
Zuletzt bearbeitet:

kay73

Bekanntes Mitglied
Ich habe es schon versucht, indem ich den Parameter einfach an die URI angehängt habe.
Laut Spezi zulässig. OAuth bringt auch eigene Authorization-Header mit. Beispiel hier:
RFC 5849 - The OAuth 1.0 Protocol
Doch scheinbar geht dies nicht. (ich bekomme immer einen 401-Error "Invalid OAuth Request")
Den bekommst Du, wenn das token ungültig, weil z. B. unauthorisiert ist oder die Signatur verkehrt ist.
Hat da jemand eine Idee? :)
  • Hast Du den "OAuth-dance" ausgeführt und ein "echtes" access-token erhalten?
  • Hast Du den Request mal gegen die Qype OAuth-Test-API gefahren?
  • Hast Du die Requests ordnungsgemäß signiert?
Du kannst nicht einfach einen "Parameter" übergeben, sondern musst den Request auf eine recht komplexe Art signieren.

Ich habe es beispielsweise nicht hinbekommen, einen Request gegen die Test-URL von qype mit dem OAuth-Java-Client von oauth.google.com zu signieren, obwohl ich ein echtes Access-Token habe. :noe:

Read/Write Access [Qype API Wiki]
 
Zuletzt bearbeitet:

sheepy

Mitglied
Hey,
einen Accesstoken habe ich. Das habe ich alles mit der Javalib. oauth-signpost erledigt. Drum dachte ich eigentlich das ein normales Socket genügen würde und ich den verifizierten token einfach als Parameter übergeben kann.

In der Wiki steht ja eigentlich auch das dieser Parameter optional ist.Sodass ich eigentlich auch als anonymer Benutzer kommentieren könnte :mhnm:

//EDIT den Request auf die Testseite habe ich auch mit einer signpostmethode erledigt. Allerdings geschieht dies ja alles mit GET. Ich habe keine Ahnung wie ich das ganze mit POST erledigen soll.


Gruß sHeepy
 
Zuletzt bearbeitet:

kay73

Bekanntes Mitglied
Das habe ich alles mit der Javalib. oauth-signpost erledigt.
Die kenne ich nicht; ich hatte den Code aus dem Google-Code Link aus der OAuth verwendet.

In der Wiki steht ja eigentlich auch das dieser Parameter optional ist.Sodass ich eigentlich auch als anonymer Benutzer kommentieren könnte :mhnm:
In der Tat verwirrend. Ich vermute aber, dass der Parameter allenfalls "technisch" optional ist.

//EDIT den Request auf die Testseite habe ich auch mit einer signpostmethode erledigt.
Allerdings geschieht dies ja alles mit GET. Ich habe keine Ahnung wie ich das ganze mit POST erledigen soll.
Der Google-Code bemüht sich nach Kräften, das Anhängen von OAuth-Parametern transparent zu machen. Da hat's z. B. ein Flag, wo die OAuth-Parameter auftauchen sollen, so dass man sie nicht explizit selbst setzen muss. Da würde es dann keine Rolle spielen, ob es sich bei dem Request um einen GET oder eine POST handelt.

Aber halt mich doch mal über Dein Fortschritte auf dem Laufenden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Daten per API senden, parallel Netzwerkprogrammierung 9
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
S Daten über TCP/IP senden Netzwerkprogrammierung 3
B Daten an Javaprogramm per URI Aufruf übergeben Netzwerkprogrammierung 7
N websocket - keine Daten mehr nach ca 80 Sekunden Netzwerkprogrammierung 0
C Spezielle Daten aus Website entnehmen Netzwerkprogrammierung 5
H Daten auf einer Webseite eintragen Netzwerkprogrammierung 11
A Socket Daten in Textdokument speichern? Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
J Daten von einem HTML-Textfeld abrufen Netzwerkprogrammierung 3
S Fakturierungsprogramm - Daten aktuell halten (blutiger Anfänger) Netzwerkprogrammierung 1
D Mit Server Daten austauschen Netzwerkprogrammierung 4
K Server liest Daten nicht Netzwerkprogrammierung 6
L HTTP Daten an Server übergeben Netzwerkprogrammierung 2
R Daten von Cloud laden Netzwerkprogrammierung 5
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
P Socket Best Practice: Daten bündeln Netzwerkprogrammierung 5
E Verfügbarkeit von Daten in Streams Netzwerkprogrammierung 4
F Daten aus Internetseiten auslesen Netzwerkprogrammierung 56
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
H Daten an Textfeld einer Webseite schicken Netzwerkprogrammierung 2
A versch. Daten im Stream erkennen Netzwerkprogrammierung 2
D daten per post senden Netzwerkprogrammierung 3
M Senden von Daten nicht direkt möglich? Netzwerkprogrammierung 6
J Applet soll Daten auf Server ablegen - einfachster Weg fuer n00bs? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
F UDP Daten kommen nicht an Netzwerkprogrammierung 22
E Socket OutputSream abbruch.Wegen zuviel !empfangener! Daten? Netzwerkprogrammierung 10
C Client zu Client Daten übertragen Netzwerkprogrammierung 13
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
P Server/Client Daten empfangen, wenn Daten gesendet werden Netzwerkprogrammierung 9
K Socket Daten lesen ohne Längenangabe Netzwerkprogrammierung 19
T RMI Effizenteste Übertragung von Daten Netzwerkprogrammierung 6
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
B Socket Daten empfangen funktioniert nicht richtig - wo liegt der Fehler? Netzwerkprogrammierung 7
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
E Daten kommen anders an als gesendert ?! Netzwerkprogrammierung 6
S HttpURLConnection POST splittet Daten in zwei Pakete Netzwerkprogrammierung 9
F POST-Daten sende Netzwerkprogrammierung 3
E HTTPS Debuggen (verschlüsselte Daten anzeigen)? Netzwerkprogrammierung 12
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
Iron Monkey Große Daten ins Vector füllen Netzwerkprogrammierung 4
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
D Daten, die mit PHP erzeugt werden, mit Java auslesen Netzwerkprogrammierung 8
M Ethernet Daten abfangen Netzwerkprogrammierung 13
F Daten senden und empfangen mit Applet Netzwerkprogrammierung 8
I Problem beim empfangen von Daten (Zahlen) Netzwerkprogrammierung 7
S Daten per GET-Methode Netzwerkprogrammierung 2
H Server soll Daten schicken, aber wie? Netzwerkprogrammierung 47
M Socket schließt bevor Daten komplett geladen Netzwerkprogrammierung 5
C Flash Daten an Java senden, wie serialisieren? Netzwerkprogrammierung 3
E rxtx serielles senden von Daten Netzwerkprogrammierung 2
D Socket, Daten über BufferedWriter senden Netzwerkprogrammierung 18
G TCP Verbindung überprüfen OHNE daten zu verschicken Netzwerkprogrammierung 11
M Daten übers Netz verschlüsselt übertragen? Wie? Netzwerkprogrammierung 18
J Post-Daten an URL schicken Netzwerkprogrammierung 2
U Image erzeugen aus empfangenen Daten Netzwerkprogrammierung 7
A Wie werden Daten versendet? "Crashcode" Netzwerkprogrammierung 4
D Frage: Buffered Reader --> Wie komm ich an die Daten (Byt Netzwerkprogrammierung 3
G unvollständige Daten: Http Client-Server-Kommunikation Netzwerkprogrammierung 2
E Multi-Part Form-Daten mit HttpURLConnection Netzwerkprogrammierung 6
A Datenverlust (zuviele Daten!) über Sockets Netzwerkprogrammierung 4
T Daten über GSM verschicken Netzwerkprogrammierung 4
M Einfachste Möglichkeit aus'm Applet Daten an Server senden Netzwerkprogrammierung 6
P Verschiedene Daten über einen Stream Netzwerkprogrammierung 4
M Verliere Daten mit WinXP Netzwerkprogrammierung 10
O eingehende Daten speichern Netzwerkprogrammierung 3
D UDP-Daten anzeigen Netzwerkprogrammierung 2
D Daten per Server- Client nur als byte verschicken? Netzwerkprogrammierung 3
A daten an php script per post senden und ausgabe einlesen Netzwerkprogrammierung 6
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
P URL Parameter auslesen Netzwerkprogrammierung 5
E Parameter einer URLConnection Netzwerkprogrammierung 12
C JSP Parameter auslesen Netzwerkprogrammierung 1
C POST-Parameter aus HTML-Script lesen Netzwerkprogrammierung 1
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben