SOAP Request - Umstellung auf HTTPS

  • VB.NET

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

    SOAP Request - Umstellung auf HTTPS

    Moin liebes Forum,

    ich habe ein ziemliches Problem. Seit einem Jahr läuft mein Zugriff auf die API eines Dienstleisters problemlos und automatisch. Seit letzter Woche aber bekomme ich immer einen Fehler ("System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben (500) Interner Serverfehler bei System.Net.HttpWebRequest.GetResponse()'". Auf Rückfrage vor Ort wurde mitgeteilt, sie hätten von Http auf Https umgestellt und Anfragen werden via Https redirected und über einen sicheren Server zurück gegeben. Mein System müsse aber in der Lage sein, die Antworten ohne Fehler verarbeiten zu können.

    Kann mir hier jemand weiter helfen? Was heißt das genau für mein Script? Was muss ich da ändern?

    Hier ist das, was seit Monaten wunderbar funktioniert hat:

    VB.NET-Quellcode

    1. '---------------------------------------------------------------------- Logon and authenticate --------------------
    2. 'create SOAP envelope for submission to the Web Service
    3. sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    4. sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    5. sEnv = sEnv & " <soap:Body>"
    6. sEnv = sEnv & " <AuthenticateUser xmlns=""https://wetu.com/Map/ItineraryServiceV7"">"
    7. sEnv = sEnv & " <username>MyUserName</username>"
    8. sEnv = sEnv & " <password>MyPassword</password>"
    9. sEnv = sEnv & " </AuthenticateUser>"
    10. sEnv = sEnv & " </soap:Body>"
    11. sEnv = sEnv & "</soap:Envelope>"
    12. Try
    13. SoapByte = System.Text.Encoding.UTF8.GetBytes(sEnv)
    14. Request = WebRequest.Create("https://wetu.com/Map/ItineraryServiceV7.asmx")
    15. Request.Headers.Add("SOAPAction", "https://wetu.com/Map/ItineraryServiceV7/AuthenticateUser")
    16. Request.ContentType = "text/xml; charset=utf-8"
    17. Request.ContentLength = SoapByte.Length
    18. Request.Method = "POST"
    19. DataStream = Request.GetRequestStream()
    20. DataStream.Write(SoapByte, 0, SoapByte.Length)
    21. DataStream.Close()
    22. Response = Request.GetResponse()
    23. DataStream = Response.GetResponseStream()
    24. Reader = New StreamReader(DataStream)
    25. Dim SD2Request As String = Reader.ReadToEnd()
    26. DataStream.Close()
    27. Reader.Close()
    28. Response.Close()
    29. dsAuthenticate.ReadXml(New XmlTextReader(New StringReader(SD2Request)))
    30. Catch ex As WebException
    31. MsgBox(ex.ToString())
    32. End Try


    Ich stehe hier echt auf dem Schlauch. Danke für Eure Hilfe!

    Gruß aus Bremen,
    Holger
    Wenn tatsächlich nur eine Umstellung von HTTP auf HTTPS stattgefunden hat, musst du nichts weiter machen als den Endpunkt ändern. Also von http://... zu [tt]https://...[/url].

    Zwischenfrage: Hat es einen Grund, das du dir dein SOAP Request von Hand erstellst? Warum benutzt du nicht Service Reference?
    Moin Slice,

    danke für Deine Antwort. Im Prinzip habe ich das gleiche erwartet, einfach auf 's' umstellen und es müsste gehen. Mein Verdacht ist ja, dass sich etwas an meinen Anmeldedaten geändert haben könnten. Leider ist es nicht ganz einfach, mit dem Unternehmen (in Südafrika) zu kommunizieren. Da muss ich am Ball bleiben!

    Zur Zwischenfrage: Ja, das hat einen ganz einfachen Grund: Ich wusste gar nicht, dass es 'Service Referenzen' gibt ;) Damit muss ich mich mal befassen, aber erst mal muss ich mein Problem hier gelöst bekommen...

    Falls noch jemand anderes eine Idee hat, bitte her damit!

    Danke :)