2009-08-19 8 views
2

J'ai une méthode comme ceci:Pourquoi WebClient (System.Net) obtient-il deux fois l'URL?

private string getFromURL(string url) 
{ 
    WebClient myClient = new WebClient(); 
    return myClient.DownloadString(url); 
} 

à l'aide de WebClient System.Net. Il semble frapper l'url deux fois (je regarde aussi le journal du serveur web en question et il enregistre deux hits). Une idée de pourquoi cela pourrait être?

EDIT: la réponse était en fait une erreur de programmeur. Je n'ai plus aucune raison de penser que cela se comporte bizarrement. Merci pour les réponses.

+0

Lorsque vous passez du navigateur à l'URL, est-ce que l'URL est touchée deux fois? –

+1

Est-ce qu'il tape deux fois l'URL exacte ou obtient-il des données d'un emplacement légèrement différent? (Potentiellement des images, ou CSS). –

+2

Je suppose que vous appelez la fonction deux fois. –

Répondre

1

Je suppose qu'il fait une tête avant le GET. Votre journal affiche-t-il la méthode HTTP utilisée?

2

Ou si l'URL est subtilement différente dans les deux cas, il peut répondre à une demande de redirection HTTP.

+0

Je crois que c'est peut-être le cas. J'ai essayé le code qui récupérait 'http: // www.google.com', inspectant les requêtes/réponses en utilisant Fiddler, et il faisait deux requêtes; le premier obtient une réponse de 302, le second un 200. –

1

départ tcpmon: https://tcpmon.dev.java.net/ c'est un outil java - mais vous pouvez l'exécuter facilement w/out étant un gars « java »

Les chances sont qu'il ya une redirection ou quelque chose à lui-même, de sorte que vous devriez être en mesure pour voir si les requêtes http sont identiques ou légèrement différentes. Curl (cygwin) - vous pouvez tester l'envoi des demandes à partir de là et voir s'il y a une redirection ou quelque chose comme ça.