Httpwebrequest Fehler Object reference not set to an instance of an object.

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von jabba191112.

    Httpwebrequest Fehler Object reference not set to an instance of an object.

    Hallo,
    Ich bin dabei mir eine Dll zu schreiben und wollte da sganze mal testen beim aufruf meiner Httpwebrequest function kommt immer der fehler

    "Object reference not set to an instance of an object."

    kann mir jemand sagen wie ich das behoben bekomme ?

    VB.NET-Quellcode

    1. Public Function questt(ByVal Met As String, ByVal Post As String, ByVal Site As String) As String
    2. Dim req As HttpWebRequest = CType(HttpWebRequest.Create(Site), HttpWebRequest)
    3. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    4. req.ContentLength = byteArray.Length
    5. req.CookieContainer = c
    6. req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0"
    7. req.ContentType = "application/x-www-form-urlencoded"
    8. req.AllowAutoRedirect = True
    9. req.Method = Met
    10. If req.Method = "POST" Then
    11. Dim w As New StreamWriter(req.GetRequestStream(), System.Text.Encoding.Default)
    12. w.Write(Post)
    13. w.Close()
    14. Else
    15. Dim stream_in As StreamReader
    16. stream_in = New StreamReader(req.GetResponse.GetResponseStream())
    17. Dim k As String = stream_in.ReadToEnd
    18. stream_in.Close()
    19. Return k
    20. End If
    21. End Function
    22. Dim U As New ultimate.Class1
    23. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    24. If U.Youtube("username...", "passwort...") Then MessageBox.Show("success") Else MessageBox.Show("failed")
    25. End Sub
    26. Public Function Youtube(ByVal Email As String, ByVal Pass As String) As Boolean
    27. Dim post As String = questt("POST", "continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Fapp%3Ddesktop%26action_handle_signin%3Dtrue%26next%3D%252F%26hl%3Den%26feature%3Dsign_in_button&identifier=" & Email & "&password=" & Pass & "&ca=&ct=: undefined", "https://accounts.google.com/signin/v2/challenge/password/empty")
    28. Return Not post.Contains("Sorry, something went wrong there. Try again.")
    29. End Function



    mfg

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

    Ist sie nicht eine Funktion muss immer etwas zurückgeben. Das tut deine nicht. Schreib in die letzte Zeile deiner Funktion 'return Nothing' dann gibt die Funktion immer einen Wert zurück. Normal müsste hier deine IDE bereits eine Warnung ausgeben, eventuell mal deine Einstellungen prüfen.

    Ich meine die Funktion 'questt'
    das problem ist ja ich brauch ein Boolean Wert also True oder >Falase als rückgabe, deswegen bring tmir das Nothing nicht viel weil Ich dann später was Abfragen muss...
    Ja kanna ja direkt an sich nur am request liegen , werd mal einfach bischen weiter rum probieren vielleicht finde Ich den genauen fehler.
    Du brauchst laut deinem Funtionskopf einen string.
    Um den Request würde ich mich erst kümmern wenn die Funtion richtig aufgebaut ist.

    *Edit*
    Hier wäre mal ein Beispiel

    Falsche Funktion


    Richtige Funktion

    VB.NET-Quellcode

    1. Function TestFunc() As String
    2. If "a" = "b" Then
    3. Return Nothing
    4. End If
    5. Return Nothing
    6. End Function


    Verbesserung

    VB.NET-Quellcode

    1. Public Function questt(ByVal Met As String, ByVal Post As String, ByVal Site As String) As String
    2. Dim k As String = "" 'Durch die Dekklaration der Variable ausserhalb der If -Abfrage kannst du die Variable zurückgeben wenn die Funktion abgearbeitet ist
    3. Dim req As HttpWebRequest = CType(WebRequest.Create(Site), HttpWebRequest) 'Einen HttpWebrequest muss man nicht in einen HttpWebRequest Umwandeln
    4. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    5. req.ContentLength = byteArray.Length
    6. req.CookieContainer = c
    7. req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0"
    8. req.ContentType = "application/x-www-form-urlencoded"
    9. req.AllowAutoRedirect = True
    10. req.Method = Met
    11. If req.Method = "POST" Then
    12. Dim w As New StreamWriter(req.GetRequestStream(), System.Text.Encoding.Default)
    13. w.Write(Post)
    14. w.Close()
    15. Else
    16. Dim stream_in As StreamReader
    17. stream_in = New StreamReader(req.GetResponse.GetResponseStream())
    18. k = stream_in.ReadToEnd
    19. stream_in.Close()
    20. 'Return k Das zurückgeben des Wertes ist hier überfüssig
    21. End If
    22. Return k
    23. End Function


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fakiz“ ()