HttpWebRequest Tutorial (für Anfänger)

    • VB.NET

    Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von Pidgin.

      Hallo Dave,

      du verwendest beim erstellen des Request anscheinend eine falsche URL. Dort muss immer die URL stehen bei welcher man sich anmelden möchte beim Beispiel von Igoe z.B.
      vb-community.eu/board/index.php?form=UserLogin&

      Du darft da nicht einfach nur /board/index.php verwenden sondern die gesamte URL!
      Also so:

      VB.NET-Quellcode

      1. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://vb-community.eu/board/index.php?form=UserLogin&"), HttpWebRequest)


      Hoffe ich konnte helfen ansonsten einfach bescheid geben!

      Gruß

      Icemanns
      Hey habe es auch für steam verucht aber es funkt net ...


      VB.NET-Quellcode

      1. Imports System.IO, System.Net, System.Text
      2. Public Class Form1
      3. Private Sub cmdCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      4. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://store.steampowered.com/login/?snr=1_4_4__11"), HttpWebRequest)
      5. Request.Method = "POST"
      6. Request.ContentType = "application/x-www-form-urlencoded"
      7. Dim Post As String = "username=" & TextBox1.Text & "password=" & TextBox2.Text
      8. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
      9. Request.ContentLength = byteArray.Length
      10. Dim DataStream As Stream = Request.GetRequestStream()
      11. DataStream.Write(byteArray, 0, byteArray.Length)
      12. DataStream.Close()
      13. Dim Response As HttpWebResponse = Request.GetResponse()
      14. DataStream = Response.GetResponseStream()
      15. Dim reader As New StreamReader(DataStream)
      16. Dim ServerResponse As String = reader.ReadToEnd()
      17. reader.Close()
      18. DataStream.Close()
      19. Response.Close()
      20. If InStr(ServerResponse, "Danke für Ihre Anmeldung") Then
      21. MsgBox("Sie haben sich erfolgreich eingelogt", MsgBoxStyle.Information, "Information")
      22. Else
      23. MsgBox("Login fehlgeschlagen. Bitte versuchen sie es erneut und überprüfen ihre eingabe", MsgBoxStyle.Critical, "Fehler")
      24. End If
      25. End Sub
      26. End Class


      sry das das thema so alt is aber brauche hilfe :>

      cu

      CodeTags korrigiert ~VaporiZed

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

      Es geht bei meinem eigenen Forum (Software die gleiche wie VB Paradise (WBB)) nicht.
      Ich habs genau so gemacht wie hier im Tutorial

      VB.NET-Quellcode

      1. Imports System.IO
      2. Imports System.Net
      3. Imports System.Text
      4. Public Class login
      5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      6. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.vb-community.eu/index.php?form=UserLogin"), HttpWebRequest)
      7. Request.Method = "POST"
      8. Request.ContentType = "application/x-www-form-urlencoded"
      9. Dim Post As String = "username=" & TextBox1.Text & "&password=" & TextBox2.Text & "&remember=yes&submit=Anmelden&action=do_login&url=http://www.flourity-wow.eu/forum/index.php"
      10. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
      11. Request.ContentLength = byteArray.Length
      12. Dim DataStream As Stream = Request.GetRequestStream()
      13. DataStream.Write(byteArray, 0, byteArray.Length)
      14. DataStream.Close()
      15. Dim Response As HttpWebResponse = Request.GetResponse()
      16. DataStream = Response.GetResponseStream()
      17. Dim reader As New StreamReader(DataStream)
      18. Dim ServerResponse As String = reader.ReadToEnd()
      19. reader.Close()
      20. DataStream.Close()
      21. Response.Close()
      22. TextBox3.Text = ServerResponse
      23. If InStr(ServerResponse, "Du hast dich erfolgreich eingeloggt.") Then
      24. MessageBox.Show("Login OK")
      25. Else
      26. MessageBox.Show("Login nicht OK")
      27. End If
      28. End Sub
      29. End Class



      hier

      VB.NET-Quellcode

      1. Response As HttpWebResponse = Request.GetResponse()
      kommt immer "WebException wurde nicht behandelt. Der Remoteserver hat einen Fehler zurückgegeben: (417) Expectation Failed."
      wäre nice wenn mir jemand helfen könnte danke schon mal im voraus
      mfg Shambala
      Danke für das sehr gute Tut!
      Ich habe nach diesem Tutorial eine Abfrage zur Validierung von Mehrwertsteuer-UID-Nummern bei der EU-Kommission geschrieben (ec.europa.eu/taxation_customs/vies/vatResponse.html).

      Die http-Headers habe ich abgefragt:
      Spoiler anzeigen

      ec.europa.eu/taxation_customs/vies/generateForm.html

      POST /taxation_customs/vies/generateForm.html HTTP/1.1
      Host: ec.europa.eu
      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
      Accept: application/json;charset=UTF-8
      Accept-Language: de,en-US;q=0.7,en;q=0.3
      Accept-Encoding: gzip, deflate
      DNT: 1
      Content-Type: application/json; charset=UTF-8
      X-Requested-With: XMLHttpRequest
      Referer: ec.europa.eu/taxation_customs/vies/vatRequest.html
      Content-Length: 11
      Cookie: JSESSIONID=m5rlT28hzVCbNxvnHn6sTLrNH5JqpHyRpbsF4JvNhy6nGrW0twvM!2061453058
      Connection: keep-alive
      Pragma: no-cache
      Cache-Control: no-cache
      {"ms":"AT"}
      HTTP/1.1 200 OK
      Date: Fri, 22 Aug 2014 08:17:22 GMT
      Content-Type: application/json;charset=UTF-8
      Server: Europa
      Transfer-Encoding: chunked
      Connection: Keep-Alive
      Content-Encoding: gzip
      ----------------------------------------------------------
      ec.europa.eu/taxation_customs/vies/vatResponse.html

      POST /taxation_customs/vies/vatResponse.html HTTP/1.1
      Host: ec.europa.eu
      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language: de,en-US;q=0.7,en;q=0.3
      Accept-Encoding: gzip, deflate
      DNT: 1
      Referer: ec.europa.eu/taxation_customs/vies/vatRequest.html
      Cookie: JSESSIONID=m5rlT28hzVCbNxvnHn6sTLrNH5JqpHyRpbsF4JvNhy6nGrW0twvM!2061453058
      Connection: keep-alive
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 176
      memberStateCode=AT&number=U63997535&traderName=&traderStreet=&traderPostalCode=&traderCity=&requesterMemberStateCode=AT&requesterNumber=U57742688&action=check&check=Pr%C3%BCfen
      HTTP/1.1 200 OK
      Date: Fri, 22 Aug 2014 08:17:32 GMT
      Transfer-Encoding: chunked
      Content-Type: text/html;charset=UTF-8
      Content-Language: de
      Server: Europa
      Connection: Keep-Alive
      Content-Encoding: gzip


      Der Code zur Abfrage lautet:
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Public Sub ValidateUIDPerHttpRequest( _
      2. ByVal LandTester As String, _
      3. ByVal UidTester As String, _
      4. ByVal LandKontrahent As String, _
      5. ByVal UidKontrahent As String, _
      6. ByRef IsValidUid As Boolean)
      7. Try
      8. Dim uriString As String = "http://ec.europa.eu/taxation_customs/vies/vatResponse.html"
      9. Dim Request As HttpWebRequest = CType(WebRequest.Create(uriString), HttpWebRequest)
      10. Request.Method = "POST"
      11. Request.ContentType = "application/x-www-form-urlencoded"
      12. Dim Post As String = "memberStateCode=" & LandTester & "&number=" & UidTester & _
      13. "&traderName=&traderStreet=&traderPostalCode=&traderCity=&" & _
      14. "requesterMemberStateCode=" & LandKontrahent & "&requesterNumber=" & UidKontrahent & _
      15. "&action=check&check=Pr%C3%BCfen"
      16. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
      17. Request.ContentLength = byteArray.Length
      18. Dim DataStream As Stream = Request.GetRequestStream()
      19. DataStream.Write(byteArray, 0, byteArray.Length)
      20. DataStream.Close()
      21. Dim Response As HttpWebResponse = CType(Request.GetResponse(), HttpWebResponse)
      22. DataStream = Response.GetResponseStream()
      23. Dim reader As New StreamReader(DataStream)
      24. Dim ServerResponse As String = reader.ReadToEnd()
      25. reader.Close()
      26. DataStream.Close()
      27. Response.Close()
      28. If InStr(ServerResponse, "MwSt-Nummer gültig") > 0 Then
      29. MsgBox("MwSt-Nummer gültig", MsgBoxStyle.Information, "Information")
      30. IsValidUid = True
      31. Else
      32. 'MsgBox("MwSt-Nummer UNGÜLTIG! Bitte versuchen sie es erneut und überprüfen ihre Eingabe", MsgBoxStyle.Critical, "Fehler")
      33. Console.WriteLine(ServerResponse)
      34. IsValidUid = False
      35. End If
      36. Catch e As Net.WebException
      37. Console.WriteLine(e.Message)
      38. If e.Status = WebExceptionStatus.ProtocolError Then
      39. Console.WriteLine("Status Code : {0}", CType(e.Response, HttpWebResponse).StatusCode)
      40. Console.WriteLine("Status Description : {0}", CType(e.Response, HttpWebResponse).StatusDescription)
      41. End If
      42. Catch e As Exception
      43. Console.WriteLine(e.Message)
      44. End Try
      45. End Sub


      Dabei bekomme ich die folgende Response:
      Spoiler anzeigen

      HTML-Quellcode

      1. "<html xmlns="http://www.w3.org/1999/xhtml">
      2. <head>
      3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
      5. <meta name="Keywords" content="customs,taxation,VAT,european union,eu" />
      6. <meta name="publisher" content="Taxation and Customs Union"/>
      7. <meta name="creator" content="COMM/DG/TAXUD" />
      8. <!-- Commission template -->
      9. <link href="/taxation_customs/vies/css/template-2012/ec.css" media="all" rel="stylesheet" type="text/css" />
      10. <!--[if IE]><link rel="stylesheet" href="/taxation_customs/vies/css/template-2012/ec-ie.css" type="text/css" media="all"></link><![endif]-->
      11. <!-- Menu is not in template -->
      12. <link type="text/css" rel="stylesheet" href="/taxation_customs/vies/css/menu.css" media="all" />
      13. <!-- VoW stylesheet -->
      14. <link type="text/css" rel="stylesheet" href="/taxation_customs/vies/css/app-layout.css" media="all" />
      15. <!-- Commission template -->
      16. <script src="/taxation_customs/vies/scripts/ec.js" type="text/javascript"></script>
      17. <script type="text/javascript" src="scripts/jquery-1.7.1.min.js;jsessionid=n7cqT3Sdcdn9cJb1jm4PJSsfNnhlM8jPNdP6pwBY1gGhw3P7yhyt!2061453058 "></script>
      18. <script type="text/javascript" src="scripts/json.min.js;jsessionid=n7cqT3Sdcdn9cJb1jm4PJSsfNnhlM8jPNdP6pwBY1gGhw3P7yhyt!2061453058 "></script>
      19. <script type="text/javascript" src="scripts/jquery-ui-1.7.2.custom.min.js"></script>
      20. <script type="text/javascript" src="scripts/vow.js"></script>
      21. <title>VIES</title>
      22. </head>
      23. <body>
      24. <a id="top-page" name="top-page"></a>
      25. <div id="layout" class="layout">


      Was mache ich falsch? Wenn ihr testen wollt, könnt Ihr einsetzen z.B.:
      Mitgliedstaat (LandTester) = "AT"
      MwSt-Nummer (UidTester) = "U63997535"
      Mitgliedstaat des Antragstellers (LandKontrahent) = "AT"
      MwSt-Nummer (UidKontrahent) = "U57742688"

      Für Hinweise bin ich sehr dankbar!!!


      Spoiler- und Codetags eingefügt
      -Artentus

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

      Du musst Thread.Sleep(2000) benutzen, aber benutze Threads ( googlen lohnt sich ;) ), sodass die GUI sich nicht aufhängt.

      ~ Alex-Digital :)
      ~ Alex-Digital :D

      if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D