Auf Thema antworten

Hey Leute,

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


Ich habe hier folgenden Code:


[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();

        }

[/code]


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



Oben