pinkywesen
Goto Top

HttpWebRequest - Form Felder ausfüllen

Guten Tag liebe Administrator.de Mitglieder,

ich habe folgendes Problem, ich möchte gerne in Visual Basic 2010 einen Tool programmieren, was mir auf einer Website 2 Eingabefelder ausfüllt und anschließend einen Button klickt. Allerdings geht es hierbei nicht um einen Login!

Bisher bin ich mit etlichen Tutorials, zu diesem Punkt gelangt:

Imports System.IO, System.Net, System.Text

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim User = "igoe", Pwd = ""  
    Dim Request As HttpWebRequest = CType(WebRequest.Create("http://www.vb-community.eu/index.php?form=UserLogin"), HttpWebRequest)  
    Request.Method = "POST"  
    Request.ContentType = "application/x-www-form-urlencoded"  
    Dim Post As String = "loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url="  
    Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    Request.ContentLength = byteArray.Length
    Dim DataStream As Stream = Request.GetRequestStream()
    DataStream.Write(byteArray, 0, byteArray.Length)
    DataStream.Close()

    Dim Response As HttpWebResponse = Request.GetResponse()
    DataStream = Response.GetResponseStream()
    Dim reader As New StreamReader(DataStream)
    Dim ServerResponse As String = reader.ReadToEnd()
    reader.Close()
    DataStream.Close()
    Response.Close()

    If InStr(ServerResponse, "Sie wurden erfolgreich angemeldet.") Then  
        MessageBox.Show("Login OK")  
    Else
        MessageBox.Show("Login nicht OK")  
    End If

End Sub
End Class
--> vb-paradise.de - HttpWebRequest Tutorial für Anfänger

Hier wird aber nur ein Cookie gesendet, oder sehe ich das falsch? Wo kann ich die Formfelder deklarieren?

Der Mitgeschnittene Verkehr sieht aber folgendermaßen aus:

Request URL:http://EXAMPLE.de/EXAMPLE/
Request Method:POST
Status Code:302 Moved Temporarily
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:141
Content-Type:application/x-www-form-urlencoded
Cookie:__utma=125742856.972654229.1355525495.1356719121.1356725189.5; __utmb=125742856.3.10.1356725189; __utmc=125742856; __utmz=125742856.1356725189.5.5.utmcsr=smsfriend.de|utmccn=(referral)|utmcmd=referral|utmcct=/
Host:EXAMPLE.de
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11

**Form Data**
txtRecipient:**Form 1**
txtCommand:**Form 2**
chars:121
SendButton:Send me!
action:go
remote:93.222.124.248
Connection:close
Content-Type:text/html; charset=UTF-8
Location:/danke
Server:Apache
Transfer-Encoding:chunked
X-Pingback:http://EXAMPLE.de/xmlrpc.php

Mit freundlichen Grüßen

Pinkywesen

Content-Key: 196355

Url: https://administrator.de/contentid/196355

Printed on: April 19, 2024 at 14:04 o'clock

Member: dog
dog Dec 31, 2012 at 14:08:02 (UTC)
Goto Top
Hier wird aber nur ein Cookie gesendet, oder sehe ich das falsch?

Ja

Wo kann ich die Formfelder deklarieren?

Request.Method = "POST"  
Request.ContentType = "application/x-www-form-urlencoded"  

Dim Post As String = "loginUsername=" & User & "&loginPassword=" & Pwd & "&useCookies=1&url="  

Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
Request.ContentLength = byteArray.Length
Dim DataStream As Stream = Request.GetRequestStream()
DataStream.Write(byteArray, 0, byteArray.Length)
DataStream.Close()
Member: Pinkywesen
Pinkywesen Jan 02, 2013 at 05:48:09 (UTC)
Goto Top
Danke, erstmal für deine schnelle Antwort!

Ich glaube ich bin auch auch dem richtigen Weg, allerdings bekomme ich beim Versuch den Response auszulesen, immmer folgenden Fehler:
"Der Remoteserver hat einen Fehler zurückgegeben: (417) Expectation Failed."

Woran könnte das liegen?