WebRequest

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Versuche derzeit eine Webrequest zu erstellen. Funktorniert aber gar nicht, kommt zwar keine Fehlermeldung Code läuft normal weiter, aber die Sachen werden nicht an die Addresse verschickt.

    VB.NET-Quellcode

    1. Dim request As HttpWebRequest = HttpWebRequest.Create("http://domain.endung/test.php?Name=" + Workername + "&GPU=" + GPU + "&CPU=" + CPU + "&Windows=" + OS + "&Architecture=" + Bit + "&Username=" + eUser)
    Du musst den Response-Stream aufrufen, damit der Request auch ausgeführt wird. Außerdem musst du noch im mindesten die Method und den ContentType angeben.
    So ich habe es ein bisschen bearbeitet allerdings funktorniert es trotzdem nicht(ohne Fehlermeldung.)

    VB.NET-Quellcode

    1. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://domain.endung/test.php"), HttpWebRequest)
    2. Request.Method = "POST"
    3. Request.ContentType = "application/x-www-form-urlencoded"
    4. Dim Post As String = "Name=" + Workername + "&GPU=" + GPU + "&CPU=" + CPU + "&Windows=" + OS + "&Architecture=" + Bit + "&Username=" + Benutzername
    5. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    6. request.ContentLength = byteArray.Length
    7. Dim DataStream As Stream = request.GetRequestStream()
    8. DataStream.Write(byteArray, 0, byteArray.Length)
    9. DataStream.Close()
    10. Dim Response As HttpWebResponse = Request.GetResponse()
    11. DataStream = Response.GetResponseStream()
    12. Dim reader As New StreamReader(DataStream)
    13. Dim ServerResponse As String = reader.ReadToEnd()
    14. reader.Close()
    15. DataStream.Close()
    16. Response.Close()


    Edit:// Achso wo bekomme ich denn Content Type her?

    VB.NET-Quellcode

    1. Imports System.Text
    2. Imports System.IO
    3. Imports System.Net
    4. Imports System.Collections.Specialized
    5. Dim nv As New NameValueCollection
    6. Dim wc As New WebClient
    7. nv.Clear()
    8. nv.Add("login", registerform.TextBox1.Text)
    9. nv.Add("pass", hasher.string_hash(registerform.TextBox2.Text))
    10. nv.Add("pass2", hasher.string_hash(registerform.TextBox3.Text))
    11. nv.Add("firstname", registerform.TextBox4.Text)
    12. nv.Add("lastname", registerform.TextBox5.Text)
    13. wc.Proxy = Nothing
    14. Dim result() As Byte = wc.UploadValues(server & "register.php", "POST", nv)
    15. Dim resultstring As String = Encoding.ASCII.GetString(result)


    Ein kleines Beispiel wie ich es gelöst habe ;) mit resulstring kannst du dann arbeiten

    VB-Tags eingefügt. ~Thunderbolt
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

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

    Moin,

    @Linkai Bitte verwende doch für soetwas den [vb]-CodeTag. Außerdem muss ich daran leider etwas bemängeln ;):
    1. Die Bezeichnungen der Klassen und Methoden sind nicht guidelinekonform.
    2. Die Controls sollten auch eindeutige Namen haben, damit man die Übersicht keinesfalls verliert.
    3. registerform.TextBox1.Text, siehe dazu: Instanziierung von Forms und Aufruf von Dialogen - WinForms - VB ...
    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    zum 1. ja es tut mir leid dass ich gerade mal den 1. Thread gelesen und den rest überflogen habe (bin gerade arbeiten).
    da ich die Projektmappe eh grade offen hatte hab ichs schnell kopiert und eingefügt.

    In meinem Projekt ist die beschriebene Instanziierung (welche mir durchaus bekannt ist ;)) an der Stelle nicht von nöten daher einfach ein bisschen Code gespart :)

    Lg und sry für die vergessenen Code-Tags :(

    Hoffe aber dass ich weiter helfen konnte :)
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    Instanziierung ist immer nötig, weil sonst ist es nicht richtig, da eine Klasse kein Objekt ist.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: