Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nach gesendeter PostData auf Server-Antwort warten

Frage Entwicklung Visual Studio

Mitglied: visualbasic

visualbasic (Level 1) - Jetzt verbinden

25.09.2012, aktualisiert 05.10.2012, 3025 Aufrufe, 6 Kommentare

Zum Glück habe ich wenigstens das Postdata schon und muss nur noch das mit dem Warten hinbekommen

Hallo
Ich habe eine PostData erstellt:

01.
Dim Request As HttpWebRequest = CType(WebRequest.Create("*********************window.html?bk=79139b87d1056cedb0a4aff6d5d5da51"), HttpWebRequest) 
02.
        Request.Method = "POST" 
03.
        Request.ContentType = "application/x-www-form-urlencoded" 
04.
        Dim Post As String = "caller=" & number 
05.
        Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post) 
06.
        Request.ContentLength = byteArray.Length 
07.
        Dim DataStream As Stream = Request.GetRequestStream() 
08.
        DataStream.Write(byteArray, 0, byteArray.Length) 
09.
        DataStream.Close() 
10.
        Dim Response As HttpWebResponse = Request.GetResponse() 
11.
        DataStream = Response.GetResponseStream()
Jetzt möchte ich auf die Server-Anwort warten.

Weil mit
01.
Dim Response As HttpWebResponse = Request.GetResponse() 
02.
    DataStream = Response.GetResponseStream() 
03.
    Dim reader As New StreamReader(DataStream) 
04.
    Dim ServerResponse As String = reader.ReadToEnd() 
05.
    reader.Close() 
06.
    DataStream.Close() 
07.
    Response.Close() 
08.
 
09.
    If InStr(ServerResponse, "Sie wurden erfolgreich angemeldet.") Then 
10.
        MessageBox.Show("Login OK") 
11.
    Else 
12.
        MessageBox.Show("Login nicht OK") 
13.
    End If
scheinst ja nicht zu gehen...

Was soll ich dann machen?
Mitglied: MonoTone
12.10.2012, aktualisiert um 09:29 Uhr
Was geht denn nicht?
Eventuell beschäftigst du dich mal mit "Debugging".
Lass dir mal den Serverresponse ausgeben.

Was du beachten solltest ist, dass nach dem Senden der Postdaten vom Webserver im Normalfall Cookies mitgesendet werden. Bei weiteren Anfragen werden diese benötigt (darüber wirst du bzw. deine Anfrage identifiziert)
Das heisst. Du logst dich ein via PostRequest und du erhältst ein (paar) Cookie(s).
Möchtest du dann Daten aus der Website auslesen, welche nur nach dem Login zur Verfügung stehen, dann machst du das via GET Request UND sendest deine empfangenen (Session) Cookies mit.

Hier mal ein Bsp:

01.
        Dim POSTData As String = "user=mono&pass=123" 
02.
        Dim strURL As String = "http://www.website.de/login.php" 
03.
        Dim Request As Net.HttpWebRequest = Net.HttpWebRequest.Create(strURL) 
04.
        Request.CookieContainer = New Net.CookieContainer() 
05.
        Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" 
06.
        Request.Method = "POST" 
07.
        Request.AllowAutoRedirect = True 
08.
        Request.ContentType = "application/x-www-form-urlencoded" 
09.
        Dim encoding As New System.Text.ASCIIEncoding() 'Use UTF8Encoding for XML requests 
10.
        Dim postByteArray() As Byte = encoding.GetBytes(POSTData) 
11.
        Request.ContentLength = postByteArray.Length 
12.
        Dim postStream As IO.Stream = Request.GetRequestStream() 
13.
        postStream.Write(postByteArray, 0, postByteArray.Length) 
14.
        postStream.Close() 
15.
 
16.
        Dim Response As Net.HttpWebResponse = Request.GetResponse 
17.
        Response.Cookies = Request.CookieContainer.GetCookies(Request.RequestUri) 
18.
 
19.
        Dim Reader As IO.StreamReader = New IO.StreamReader(Response.GetResponseStream) 
20.
        'Ausgabe des Responses 
21.
        Debug.Print(Reader.ReadToEnd()) 
22.
        'ausgabe der Cookies 
23.
        For Each SetCookie As Net.Cookie In Response.Cookies 
24.
            Debug.Print(SetCookie.Name & ": " & SetCookie.Value) 
25.
        Next 
26.
 
Bitte warten ..
Mitglied: visualbasic
12.10.2012 um 14:14 Uhr
Zitat von MonoTone:
Was geht denn nicht?
Eventuell beschäftigst du dich mal mit "Debugging".
Die Taste F5 ist mir bekannt.

01.
>         Dim POSTData As String = "user=mono&pass=123" 
02.
>         Dim strURL As String = "http://www.website.de/login.php" 
03.
>         Dim Request As Net.HttpWebRequest = Net.HttpWebRequest.Create(strURL) 
04.
>         Request.CookieContainer = New Net.CookieContainer() 
05.
>         Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" 
06.
>         Request.Method = "POST" 
07.
>         Request.AllowAutoRedirect = True 
08.
>         Request.ContentType = "application/x-www-form-urlencoded" 
09.
>         Dim encoding As New System.Text.ASCIIEncoding() 'Use UTF8Encoding for XML requests 
10.
>         Dim postByteArray() As Byte = encoding.GetBytes(POSTData) 
11.
>         Request.ContentLength = postByteArray.Length 
12.
>         Dim postStream As IO.Stream = Request.GetRequestStream() 
13.
>         postStream.Write(postByteArray, 0, postByteArray.Length) 
14.
>         postStream.Close() 
15.
>  
16.
>         Dim Response As Net.HttpWebResponse = Request.GetResponse 
17.
>         Response.Cookies = Request.CookieContainer.GetCookies(Request.RequestUri) 
18.
>  
19.
>         Dim Reader As IO.StreamReader = New IO.StreamReader(Response.GetResponseStream) 
20.
>         'Ausgabe des Responses 
21.
>         Debug.Print(Reader.ReadToEnd()) 
22.
>         'ausgabe der Cookies 
23.
>         For Each SetCookie As Net.Cookie In Response.Cookies 
24.
>             Debug.Print(SetCookie.Name & ": " & SetCookie.Value) 
25.
>         Next 
26.
>  
27.
> 

Vielen Dank, an die Cookies habe ich gar nicht gedacht!
Also, der obige Code ist zum Login, oder?
Was muss ich dann jetzt machen, nachdem ich durch den Login die Cookies bekommen hab; wenn ich nochmal einen Postdata senden will (als eingeloggter USER) ?

Gruß
Bitte warten ..
Mitglied: MonoTone
12.10.2012 um 14:39 Uhr
F5 <> Debugging!
Dies ist lediglich die Taste um das Debugging zu starten.

Ich habe oben bereits beschrieben, wie du dann vorgehen musst.
Bitte warten ..
Mitglied: visualbasic
12.10.2012 um 14:43 Uhr
Zitat von MonoTone:
F5 <> Debugging!
Dies ist lediglich die Taste um das Debugging zu starten.
Ich schau dann auch nach dem Fehler / den Fehlern.

Ich habe oben bereits beschrieben, wie du dann vorgehen musst.
Ja schon, aber wie sende ich die Cookies mit?
Und wenn ich gar keinen GET, sondern ein POST machen will?

Gruß
Bitte warten ..
Mitglied: MonoTone
12.10.2012 um 14:52 Uhr
Du kannst einem Request einen Cookiecontainer mitgeben, wie in dem Beispiel ersichtlich.
Es steht alles da.
Das einzige was du noch tun musst ist selber logisch denken und die Dinge verknüpfen.
Bitte warten ..
Mitglied: visualbasic
12.10.2012 um 16:04 Uhr
Zitat von MonoTone:
Du kannst einem Request einen Cookiecontainer mitgeben, wie in dem Beispiel ersichtlich.
Es steht alles da.
Das einzige was du noch tun musst ist selber logisch denken und die Dinge verknüpfen.
Danke; ich habe jetzt rumprobiert und habs noch immer nicht - sorry

Gruß
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail
Automatische Antwort von Server an bestimmte Absender

Frage von SFischer-SCT zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Outlook auf Mail Antworten und es verschwindet (2)

Frage von miichiii9 zum Thema Outlook & Mail ...

Outlook & Mail
Keine Antwort senden möglich, Outlook Termineinladung

Frage von killtec zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (12)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...