2017-12-28 28 views
1

コードは、私が何をしたいのかダウンHTTPレスポンスコードC#

 List<int> j = new List<int>(); 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(result.SiteURL); 
     webRequest.AllowAutoRedirect = false; 
     HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); 
     j.Add((int)response.StatusCode); 

を下回っていることは、すべての応答コードを取得し、である、それらを区切る(2XXのように、300番台の4xx-5xxの)と異なるリストに入れ。私は4xxの応答の数や200の応答の数などの数字が必要なのでそれとももう一つの方法がありますか?

result.SiteURLは、応答のURLです。問題は、コードの最後の行が返されたり取得されたりしないことです。私はここで何が欠けていますか?

編集:主な問題は、私が試してみると1つの応答コードしか得られないことです。それはほとんどが200です。OKです。しかし、youtube.com(012)には、https://tools.pingdom.com/#!/fMjhr/youtube.comによると、74個のOK(200)レスポンス、1個のNo Content(204)レスポンス、および2個のMoved Permanently(301)レスポンスが必要です。どのように私はそれらを得るつもりですか?

+0

[HttpWebRequestとHttpWebResponseからHttpステータスコード番号(200,301,404など)を取得する]の可能な複製(https://stackoverflow.com/questions/1330856/getting-http-status-code-number- 200-301-404-etc-from-httpwebrequest-and-ht) - すべての**の回答を必ず読んでください。 – mjwills

+0

リダイレクトステータスコードについては、https://stackoverflow.com/a/11618739/34092も参照してください。 – mjwills

+0

'ConcurrentDictionary resp = new ConcurrentDictionary ()'は正しいですか?この行の 'response.StatusCode'は表示されません。それは言う:** '応答'は変数ですが、タイプのように使用されます** @ mjwills – ovuncdeniz4

答えて

1

あなたはpingdomの結果を誤解しています。

Pingdomのは、単にブラウザのようにWebページをう要求:スタイルシート、スクリプト、画像など

あなたのコードだけをロード:それはページによってすべてのリソース参照をページ自体をロードするだけでなく、大きな可用性を持ち、常に200 OKを返すメインのHTMLページ。

pingdomの結果を再現するには、HTMLページを解析してページのリソースも読み込む必要があります。 HTMLを解析することは(ブラウザベンダーは多くの努力を払っていますが)簡単な作業ではありませんので、これがあなたの時間にふさわしいかどうか再考したいかもしれません。

+0

"pingdomの結果を再現するには、HTMLページを解析してページのリソースも読み込む必要があります。私はプログラミングに慣れていないので、どうしたらいいのですか?私たちを手伝ってくれますか? – ovuncdeniz4

+0

これは初心者にとっては本当に適切な仕事ではありません。それでもやりたいのであれば、まずはHTMLに習熟し、C#でHTMLを解析する方法を学ぶことから始めましょう。 – Heinzi

関連する問題