Datenaustausch mit Webseite

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von nemesis.

    Datenaustausch mit Webseite

    Hallo,

    ich möchte gerne eine Schnittstelle zu einer Webseite schreiben. Das Programm soll Daten an eine Webseite senden, die dann von dieser aufbereitet zurückgegeben werden.
    Das Problem ist, man muss sich an der Webseite mit bestimmten Vorgaben authentifizieren:
    1. Die Authentifizierung muss über BasicAuth erfolgen (RFC2617)
    2. Die Authentifitierung muss über HTTPS nach RFC2818 erfolgen
    3. Der Dienst kann die Session jederzeit beenden, der Client muss in der Lage sein sich erneut zu authentifizieren.
    4. Die Authentifizierungscredentials müssen in jedem HTTP-Request an die API übergeben werden, ohne auf die Chalenge de Servers zu warten
    Hat hier jemand einen Tipp für mich, wie soetwas in VB Realisiert werden kann?

    Vielen Dank!
    Hallo Slice,
    ich habe mir das mal angesehen und folgendes gebastelt:

    VB.NET-Quellcode

    1. Dim myHttpWebRequest As HttpWebRequest = CType(System.Net.WebRequest.Create("MEINEURL"), HttpWebRequest)
    2. Dim Credential As New NetworkCredential("name", "passwort")
    3. myHttpWebRequest.Credentials = Credential
    4. Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)

    Aber hier bleibt er dann bei GetResponse() stehen.

    EDIT:
    Nun habe ich es über Headers hinzufügen probiert

    VB.NET-Quellcode

    1. Dim uri As New Uri("[url]https://meineseite.de[/url]")
    2. Dim myHttpWebRequest As HttpWebRequest = CType(System.Net.WebRequest.Create(uri), HttpWebRequest)
    3. Dim authInfo As String = "user:password"
    4. authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo))
    5. myHttpWebRequest.Headers("Authorization") = "Basic " + authInfo

    aber, dann bekomme ich die Meldung:
    Ein Ausnahmefehler des Typs "System.Net.WebException" ist in System.dll aufgetreten.

    Zusätzliche Informationen: Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden..


    EDIT2:
    Damit funktionierts :)

    VB.NET-Quellcode

    1. Private Function AcceptCert(ByVal sender As Object, ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, _
    2. ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, _
    3. ByVal errors As System.Net.Security.SslPolicyErrors) As Boolean
    4. Return True
    5. End Function


    Nun muss ich nur noch herausfinden, wie man das ganze über Proxy funktioniert.

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „nemesis“ ()