kostenloser Webspace werbefrei: lima-city


Post param einer website bekommen

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Hey,

    ich bekomme über eine beliebige Website (z.B. 127.0.0.1/?code=<CODE>) einen code.
    Diesen muss ich dann in meinem Programm verwenden. Hat jemand einen Plan wie ich das anstellen könnte?
    Lokalen Server starten mit einem Port und dann warten? Wenn ja, gibt's einfache Frameworks?

    Mehr Ideen hatte ich noch nicht...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo.

    Erstmal musst du wissen, welche Parameter du meinst. Parameter, die mit Fragezeichen an die Url angehängt werden, sind GET-Parameter. POST-Parameter werden hauptsächlich beim Abschicken von Formularen gesendet.

    Hier mal ein kurzes Beispiel zu den Get-Parametern
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Webserver {
    	public static void main(String[] args) throws IOException {
    		ServerSocket server=new ServerSocket(80);
    		Socket client=server.accept();
    		InputStream in=client.getInputStream();
    		BufferedReader lesen=new BufferedReader(new InputStreamReader(in));
    		System.out.println(lesen.readLine());
    	}
    }
    Was du ausgegeben bekommst, ist die erste Zeile der Anfrage.
    Details stehen auch in Wikipedia

    Letztendlich solltest du die Anfrage noch beantworten und evtl. ein paralleles Programm schreiben, um auch mehrere Anfragen gleichzeitig auszuwerten.

    Das mal so ganz grob. Wenn du noch etwas detailliert wissen möchtest, schreib einfach zurück.
  4. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Hey fuerderer,

    also die Seiten bekomme ich mittlerweile. Nur komischerweise wird weder POST noch GET verwendet (wie in der Doc beschrieben) sondern die URL sieht so aus: http://127.0.0.1:5000/#access_token=50r4d

    Mein GET liefert mir damit leider nur /


    Edit:
    Eigentlich ist mir egal, was das Teil zurückliefert... Benötige nur den Link :)

    Beitrag zuletzt geändert: 24.7.2014 15:24:01 von portal715
  5. Jetzt sieht dein Link aber anders aus, als vorher :wink:
    portal715 schrieb:
    http://127.0.0.1:5000/#access_token=50r4d
    Da muss ich dich leider enttäuschen. Alles nach dem # wird vom Browser zunächst ignoriert, das heißt der Server (dein Java-Programm) bekommt nur http://127.0.0.1:5000/
    Anmerkung: Du siehst nur ein /. Alles davor kann sich der Server aber denken.

    Woher kommt denn die Adresse, kann man vielleicht das '#' entfernen oder durch ein Fragezeichen ersetzen?

    Eine andere Idee wäre, ein Javascript auszuliefern, das versucht, die Infos nach dem # abzufragen und anschließend die Daten nochmal nachschickt. Aber das wäre dann unsauber umgesetzt.
  6. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Ja das kam auch für mich etwas unerwartet...

    [quote]
    If the user authorizes your application, they will be redirected to the following URL:
    https://[your registered redirect URI]/?code=[CODE]
    [/quote]
    siehe [url=https://github.com/justintv/Twitch-API/blob/master/authentication.md#auth-code]hier[/url]

    hmm.. muss ich wohl noch ein wenig herumsuchen.


    Wie bekomme ich eine schnelle Antwort hin? Also einfach nur "Success" oder so...


    Edit:
    Arr fuck :D ... Hatte token anstelle von code als response eingestellt *facepalm*



    Beitrag zuletzt geändert: 24.7.2014 15:49:40 von portal715
  7. portal715 schrieb:
    Wie bekomme ich eine schnelle Antwort hin? Also einfach nur "Success" oder so...
    Du meinst eine HTTP-Antwort?
    Innerhalb von Java muss du zuerst einmal noch den "OutputStream" laden.
    OutputStream out=client.getOutputStream();
    PrintWriter schreiben=new PrintWriter(out);
    Dann kannst du mit
    schreiben.print("");
    oder
    schreiben.println("");
    Text senden.
    Am einfachsten:
    HTTP/1.1 204 No Content
    Das bedeutet laut Wikipedia: "Die Anfrage wurde erfolgreich durchgeführt, die Antwort enthält jedoch bewusst keine Daten." Wichtig sind noch zwei Zeilenumbrüche, also eine Leerzeile am Ende.

    Du kannst aber auch HTML ausliefern:
    HTTP/1.1 200 OK
    Content-Length: 13
    
    <html></html>
    Wenn du das HTML veränderst, musst du auch die Zahl bei Content-Length anpassen. Immer die Anzahl an Bytes.

    (Hab dein Edit noch gesehen, trotzdem könnte meine Erklärung noch weiterhelfen
    -> Veröffentlichen)
  8. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Okay ich habs mir jetzt so geschrieben:

    public void sendResponse(boolean success) throws Exception {
    	     PrintWriter schreiben=new PrintWriter(outToClient);
    	     String content;
    	     if(success)
    	    	 content = "<html><body>Success</body></html>";
    	     else
    	    	 content = "<html><body>Failure</body></html>";
    	     schreiben.print("HTTP/1.1 200 OK\r\n"+
    	    		 			"Content-Length: "+content.length()+"\r\n"+
    	    		 			content+"\r\n");
    	  }


    Leider lädt er mir nichts...
  9. Zwei Dinge hab ich an deiner Funktion verändert, jetzt funktioniert sie bei mir.

    1. Du brauchst zwei Zeilenumbrüche (=eine Leerzeile) zwischen Header und Content:
    schreiben.print("HTTP/1.1 200 OK\r\n"+
    "Content-Length: "+content.length()+"\r\n\r\n"+
    content+"\r\n");

    2. Danach noch ein Flush, um alles sicher zu senden:
    schreiben.flush();

    Viel Glück :thumb:
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!