Download einer Website schlägt fehl

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von xored.

    Download einer Website schlägt fehl

    Hallo,

    wenn ich die folgende URL Aufrufe erhalte ich eine Antwort im Browser.
    nominatim.openstreetmap.org/se…t-Strasse 1, 10557 Berlin

    Wenn ich folgenden Code ausführe, wird ein Fehler geworden und ich bekomme diese Fehlermeldung
    "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden."

    VB.NET-Quellcode

    1. Dim sHTMLPage As String = New System.Net.WebClient().DownloadString("https://nominatim.openstreetmap.org/search?format=xml&limit=10&addressdetails=1&q=Willy-Brandt-Strasse 1, 10557 Berlin")



    Wie passt das zusammen?
    Warum wird die Seite nicht in den String sHTML geladen? :rolleyes:

    Mir fällt auf, dass ich in meinem Code die Leerzeichen durch ersetzt habe. Der Code Anzeiger zeigt jedoch wieder Leerzeichen an?!?


    Anscheinend löst auch das Board ein % 20 (ohne Leerzeichen) in ein Leerzeichen um?!?


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Der flotte Johann“ ()

    VB.NET-Quellcode

    1. Dim sHTMLPage As String = New System.Net.WebClient().DownloadString("https://nominatim.openstreetmap.org/search?format=xml&limit=10&addressdetails=1&q=Willy-Brandt-Strasse 1, 10557 Berlin")


    Niemals Leerzeichen in einer URL. Leerzeichen = "% 20" (ohne Leerzeichen dazwischen)

    Edit: Verstehe dein Problem. Mach es mal nicht mit DownloadString(), sondern so:

    VB.NET-Quellcode

    1. Dim request As HttpWebRequest = CType(WebRequest.Create("https://nominatim.openstreetmap.org/search?format=xml&limit=10&addressdetails=1&q=Willy-Brandt-Strasse 1, 10557 Berlin"), HttpWebRequest) 'Hier "% 20" (ohne Leerzeichen dazwischen) statt den Leerzeichen eintragen
    2. request.AllowAutoRedirect = True
    3. request.ContentType = "application/x-www-form-urlencoded"
    4. request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"
    5. request.MaximumAutomaticRedirections = 4
    6. request.MaximumResponseHeadersLength = 4
    7. request.Credentials = CredentialCache.DefaultCredentials
    8. Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    9. Dim receiveStream As Stream = response.GetResponseStream()
    10. Dim readStream As StreamReader = New StreamReader(receiveStream, Encoding.UTF8)
    11. MsgBox(readStream.ReadToEnd()) 'Hier der Inhalt
    12. response.Close()
    13. readStream.Close()


    Meine Website:
    www.renebischof.de

    Meine erste App (Android):
    PartyPalooza

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „xored“ ()

    Geht auch etwas schlanker, die Parameter hatte ich bei meinem Projekt benutzt. :D

    VB.NET-Quellcode

    1. Dim request As HttpWebRequest = CType(WebRequest.Create("https://nominatim.openstreetmap.org/search?format=xml&limit=10&addressdetails=1&q=Willy-Brandt-Strasse 1, 10557 Berlin"), HttpWebRequest)
    2. request.ContentType = "application/x-www-form-urlencoded"
    3. request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"
    4. Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    5. Dim receiveStream As Stream = response.GetResponseStream()
    6. Dim readStream As StreamReader = New StreamReader(receiveStream, Encoding.UTF8)
    7. MsgBox(readStream.ReadToEnd())
    8. response.Close()
    9. readStream.Close()


    Meine Website:
    www.renebischof.de

    Meine erste App (Android):
    PartyPalooza