Quelltext-Browser - Bad Connection...

  • VB6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von scc-black.

    Quelltext-Browser - Bad Connection...

    Hallo, vb-Coder.
    Also ich habe folgendes Problem..

    Ich habe ein Visual Basic App geschrieben,
    mit dem man eine phpdatei auf
    meinem Host ansprechen soll, um den
    Quelltext ins Textfeld zu holen.

    Ein Browser halt, bloß ohne grafische Übersetzung
    des Quelltextes, ein Quelltextbrowser.

    Visual Basic-Quellcode

    1. Public Sub Command1_Click()
    2. ident = "Test"
    3. If Not Socket.Initialize Then
    4. MsgBox "Sorry, konnte socket nicht inizialisieren!"
    5. Else
    6. sock = Socket.Socket(istTCPSocket:=True)
    7. If sock = Socket.INVALID_SOCKET Then
    8. MsgBox "Kein gültiger socket!"
    9. Else
    10. If Not Socket.Connect(sock, "http://meinhost.de/", Port:=80) Then
    11. MsgBox "Konnte sich nicht zum Host verbinden!"
    12. Else
    13. If Not Socket.Send(sock, "GET test.php?heho=" + ident + " HTTP/1.0" + vbCrLf + "Host: meinhost.de" + vbCrLf + vbCrLf) Then
    14. MsgBox "Keine Datei gefunden"
    15. Else
    16. Code.Text = Socket.Receive(sock, 32000)
    17. End If
    18. End If
    19. End If
    20. End If
    21. End Sub


    Nun bekomme ich als Antwort von meinem
    Host nur

    HTML-Quellcode

    1. HTTP/1.1 400 Bad Request
    2. Date: Sun, 19 Nov 2006 23:33:33 GMT
    3. Server: Apache/2.0.52 (Red Hat) DAV/2 mod_python/3.1.3 Python/2.3.4
    4. Content-Length: 352
    5. Connection: close
    6. Content-Type: text/html; charset=iso-8859-1
    7. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    8. <html><head>
    9. <title>400 Bad Request</title>
    10. </head><body>
    11. <h1>Bad Request</h1>
    12. <p>Your browser sent a request that this server could not understand.<br />
    13. </p>
    14. <hr>
    15. <address>Apache/2.0.52 (Red Hat) DAV/2 mod_python/3.1.3 Python/2.3.4 Server at meinhost.de Port 80</address>
    16. </body></html>


    Was muss ich beachten und wieso bekomme
    ich statt anständigen Zeilenumrüchen nur
    dicke | ?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Agent“ ()

    Hi!

    Die meldung heißt, dass du ein Fehler bei deinem HTTP-Request gemacht hast.
    die dicken "Kästchen" bekommst du, weil der VB-Umbrucht chr(13)+chr(10) ist und der linux/unix nur eins von beidem (bin mir nicht sicher welches).
    Da das windoof zu blöde ist das darzustellen, kommt stattdessen das zeichen für ein nicht darstellbares Zeichen...
    Was Mad Andy meint ist, dass die Zeilenumbrüche in Unix nur durch ein chr(10) erzeugt werden und der Server keine Windows-Umbrüche chr(13)+chr(10) mag

    Es könnte aber auch daran liegen, dass du statt GET eher POST verwenden musst, oder zumindest den GET-String umwandeln da dort keine Sonderzeichen erlaubt sind. Beispiel: Wenn du im Browser ein Leerzeichen eingibt, macht er automatisch daraus "%20", wobei die 20 hexadezimal ist und für chr(32) steht...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    @Agent Smith:

    Quellcode

    1. ident = "Test"

    Wo ist da ein Leerzeichen?
    Das ist mir schon klar, danach war auch nicht gefragt.

    Und den Teil habe ich auch verstanden, ich habe jetzt gefragt
    was an meinem Request-String falsch ist.

    Quellcode

    1. Was Mad Andy meint ist, dass die Zeilenumbrüche in Unix nur durch ein chr(10)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Blubb“ ()

    Ein Zeilenumbruch ist genauso ein Sonderzeichen wie beispielsweise ein Leerzeichen. An deinem Request ist falsch, dass du Sonderzeichen "codieren" musst, siehe meinen letzten Post!
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Hi!

    Wenns ein Apache ist, sollte er auch die Windows-Umbrüche richtig erkennen...
    Was an dem Request falsch ist, kann ich dir nicht sagen. Is ja auch ein vb-forum.
    schau mal in der wiki nach.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()

    Schon ok, hab den Schlingel!

    If Not Socket.Send(sock, "GET /test.php?heho=" + ident + " HTTP/1.0" + vbCrLf + "Host: meinhost.de" + vbCrLf + vbCrLf) Then


    Hier so müssets gehen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „scc-black“ ()