2016-11-09 2 views
0

Ich versuche zu überprüfen, ob ein Benutzername auf einer bestimmten Website verfügbar ist, aber es kommt mit einem 404-Fehler.404 Error On HttpWebRequest

Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.instagram.com/" + userToCheck & "/") 
     Dim response As System.Net.HttpWebResponse = Request.GetResponse() 

     Dim sReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream) 
     Dim steamResult As String = sReader.ReadToEnd() 

     If steamResult.Contains("Sorry") Then 
      addAvailable() 

Althought dies funktioniert:

Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://steamcommunity.com/id/" + userToCheck) 
      Dim response As System.Net.HttpWebResponse = Request.GetResponse() 

      Dim sReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream) 
      Dim steamResult As String = sReader.ReadToEnd() 

      If steamResult.Contains("The specified profile could not be found.") Then 
       addAvailable() 
      End If 

Irgendwelche Ideen, was falsch ist?

+2

Wenn der Benutzer nicht existiert, würden Sie nicht * erwarten * 404? –

+0

Yup, aber das Programm stoppt, wenn es ein 404 gibt. Ich will, dass es weiter läuft, selbst wenn es das 404 gibt. –

+0

Definieren "stoppt", wirft es eine Ausnahme? Wenn dies der Fall ist, fügen Sie einen "Try/Catch" -Block hinzu. –

Antwort

0

Wenn Sie mit "stops" meinen, dass es eine Ausnahme auslöst, müssen Sie Ihren Code in einen try catch einbinden, um die Ausführung fortzusetzen.

Try 
     Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.instagram.com/" + userToCheck & "/") 
     Dim response As System.Net.HttpWebResponse = Request.GetResponse() 

     Dim sReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream) 
     Dim steamResult As String = sReader.ReadToEnd() 

     If steamResult.Contains("Sorry") Then 
      addAvailable() 
    Catch ex As System.Net.WebException 
     Console.WriteLine(ex.Message) 
    End Try 

EDIT: Tun Sie, was Sie im Falle eines 404 im catch-Block tun möchte :)

+0

Die Sache ist, dass es sagt, dass der Benutzername verfügbar ist, wenn es nicht ist:/Und wenn ich "404" anstelle von "Sorry" es scheint zu funktionieren, aber nicht richtig, aber wenn ich "Sorry" anstelle von "404" einsetze, funktioniert es nicht. –

+0

@ DanielAndré Ihr Stream-Reader lädt nicht die eigentliche Seite, sondern eine 404-Ressource, weshalb Sie versuchen, 404 zu lesen, und es funktioniert. Wenn Sie aus irgendeinem Grund "Entschuldigung" verwenden möchten, schauen Sie in WebClients nach. – Jaxi

+0

Gepresste Eingabe, um eine neue Zeile hinzuzufügen, und es machte einen Kommentar, zufällig. https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx überprüfen Sie dies und schauen Sie sich WebClient.DownloadString() an – Jaxi