Impossible d’obtenir le code HTML via HttpWebRequest

J’essaie d’parsingr le code HTML de la page à l’ adresse http://odds.bestbetting.com/horse-racing/today afin d’obtenir une liste des courses, etc. code de la page. Voici le code C # de la fonction:

public static ssortingng Http(ssortingng url) { Uri myUri = new Uri(url); // Create a 'HttpWebRequest' object for the specified url. HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri); myHttpWebRequest.AllowAutoRedirect = true; // Send the request and wait for response. HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); var stream = myHttpWebResponse.GetResponseStream(); var reader = new StreamReader(stream); var html = reader.ReadToEnd(); // Release resources of response object. myHttpWebResponse.Close(); return html; } 

Lorsque j’exécute le programme appelant la fonction, il lève une exception sur

HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse ();

lequel est:

Impossible de gérer la redirection des protocoles HTTP / HTTPS vers d’autres protocoles dissemblables.

J’ai lu cette question mais je ne semble pas avoir le même problème. J’ai également essayé d’imaginer quelque chose qui détecte le trafic avec un violoneur, mais je ne vois rien où cela redirige ou quelque chose de similaire. Je viens d’extraire ces deux redirections possibles: odds.bestbetting.com/horse-racing/2011-06-10/byCourse et odds.bestbetting.com/horse-racing/2011-06-10/byTime, mais leur interrogation produit le même résultat que ci-dessus.

Ce n’est pas la première fois que je fais quelque chose comme ça, mais je suis vraiment perdu sur celui-ci. De l’aide?

Merci!

Il peut y avoir une douzaine de causes probables à votre problème.

L’une d’elles est que la redirection du serveur pointe vers un site FTP ou quelque chose comme ça.

Il se peut également que le serveur nécessite des en-têtes dans la demande que vous ne fournissez pas.

Vérifiez ce qu’un navigateur enverrait sur le site et essayez de le répliquer.

J’ai finalement trouvé la solution… il s’agissait effectivement d’un problème avec les en-têtes, en particulier celui de User-Agent.

J’ai trouvé après beaucoup de recherches un gars ayant le même problème que moi avec le même site. Bien que son code soit différent, l’important était qu’il ait défini manuellement l’atsortingbut UserAgent de la demande sur celui d’un navigateur. Je pense que je l’avais déjà fait auparavant mais je l’ai peut-être fait assez mal… désolé.

Le code final, s’il intéresse quelqu’un, est le suivant:

  public static ssortingng Http(ssortingng url) { if (url.Length > 0) { Uri myUri = new Uri(url); // Create a 'HttpWebRequest' object for the specified url. HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri); // Set the user agent as if we were a web browser myHttpWebRequest.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"; HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); var stream = myHttpWebResponse.GetResponseStream(); var reader = new StreamReader(stream); var html = reader.ReadToEnd(); // Release resources of response object. myHttpWebResponse.Close(); return html; } else { return "NO URL"; } } 

Merci beaucoup pour votre aide.