Announcement

Collapse
No announcement yet.

Auslesen einer Shoppingwebseite

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auslesen einer Shoppingwebseite

    Mit der abgebildeten Funktion "Send" möchte ich eine Webseite (Shopping Seite) quasi auslesen, um sie dann weiter zu analysieren und weiter zu verarbeiten (DAS GANZE IST LEGAL! ICH BESITZE EINEN SHOPPING ACCOUNT DEN ICH DAZU VERWENDEN DARF.). Dazu übergebe ich folgende Parameter an die Funktion:

    Code:
    Dim Result As String = String.Empty
    Dim ConnectURL As String = String.Empty = "<die Ziel URL für das LOGIN auf der HomePage des Zielsystems>"
    Dim PostData As String = String.Empty
    Dim CookieJar As New CookieContainer '<== wird noch nicht verwendet!!!
    Dim StatusCode As String = String.Empty '<== Zurückgegebener STATUS
    
       ConnectURL = "https://<Ziel Web Seite>"
       PostData = "kndnr=11111&name_kunde=22222&pw_kunde=33333&version=1.3&action=ADL&ghnummer=4711"
    
       Result = EasyHttp.Send(ConnectURL, CookieJar, StatusCode, PostData, "", EasyHttp.HTTPMethod.HTTP_POST, 100)
    Code:
       Public Shared Function Send(ByVal URL As String, _
                                 ByRef CookieJar As CookieContainer, _
                                 ByRef StatusCode As String, _
                                 Optional ByVal PostData As String = "", _
                                 Optional ByVal Proxy As String = "", _
                                 Optional ByVal Method As HTTPMethod = HTTPMethod.HTTP_GET, _
                                 Optional ByVal ContentType As String = "", _
                                 Optional ByVal TimeoutSeconds As Integer = 60)
    
          Dim ResponseData As String = ""
    
          Try
             Dim hwrequest As Net.HttpWebRequest = Net.WebRequest.Create(URL)
    
             hwrequest.Method = Method.ToString().Substring(5)
             hwrequest.KeepAlive = True
             hwrequest.Accept = "*/*"
             hwrequest.AllowAutoRedirect = True
             hwrequest.Referer = URL '"http://myWebsite"
             hwrequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"
             hwrequest.Timeout = TimeoutSeconds * 1000
    
             If hwrequest.Method = "POST" Then
                hwrequest.ContentType = "application/x-www-form-urlencoded"
    
                Dim encoding As New System.Text.ASCIIEncoding() 'Use UTF8Encoding for XML requests
                Dim postByteArray() As Byte = encoding.GetBytes(PostData)
                hwrequest.ContentLength = postByteArray.Length
    
                Dim postStream As IO.Stream = hwrequest.GetRequestStream()
                postStream.Write(postByteArray, 0, postByteArray.Length)
                postStream.Close()
             End If
    
             Dim hwresponse As Net.HttpWebResponse = hwrequest.GetResponse()
    
             If hwresponse.StatusCode = Net.HttpStatusCode.OK Then
                Dim responseStream As IO.StreamReader = New IO.StreamReader(hwresponse.GetResponseStream())
                ResponseData = responseStream.ReadToEnd()
    
                StatusCode = "StatusCode: OK"
    
             Else
                StatusCode = "StatusCode: notOK"
    
             End If
    
             hwresponse.Close()
    
          Catch e As Exception
             ResponseData = "An error occurred: " & e.Message
    
          End Try
    
          Return ResponseData
    
       End Function
    Das zurückgelieferte Ergebnis sieht sehr Suspect aus (habe es manuell etwas strukturiert):
    HTML Code:
    <html>
       <head><style type="text/css">.middle  { vertical-align:middle; }</style></head>
       <body onload="document.forms[0].submit()">
          <form method="post" action="/fis(bD1kZSZjPTAwMiZ0PSUyZkZJUyUyZkVTSV9HUlVFTg==)/fisesales/z_login_ids.htm">
             <input type="hidden" name="kndnr" value="11111"><input type="hidden" name="name_kunde" value="22222"><input type="hidden" name="pw_kunde" value="33333"><input type="hidden" name="version" value="1.3"><input type="hidden" name="action" value="ADL"><input type="hidden" name="ghnummer" value="4711">
          </form>
          <table border="0" width="100%" height="100%">
             <tr><td align="center" class="middle">Ihre Anfrage wird bearbeitet</td></tr>
          </table>
       </body>
    </html>
    Erwartet habe ich die Web Seite, die ich hätte, wenn ich mich manuell an diese WebSeite angemeldet hätte.

    Hat jemand von Euch eine Idee dazu, wie ich die Web Seite ganz übernehmen kann?
    Im Internet habe ich bislang nichts dazu gefunden, daß mein Problem lösen könnte. Nur variationen zu meinem Code. Zugegeben mit diesem Thema hatte ich bislang nichts zu tun und tue mich hier schwer.

    -Hans

  • #2
    So wie ich das sehe musst du die Seite, die das Ergebnis darstellt nochmals absenden, da der HttpWebRequest offenbar kein Javascript interpretiert.
    Christian

    Comment


    • #3
      Des Rätsels Lösung.

      Danke
      Hans

      Comment

      Working...
      X