2011-08-04 12 views
0

私は一連の画像URLを持っています。 try - catchを使用せずに、これらのURLのうち正しいURLとわからないURLを知りたい場合は、できるだけ早くそれを実行したいと思います。URLから正しい画像URLかどうかを知る方法はありますか?

+1

なぜあなたはtry/catchを特に避けたいのですか? –

+0

私はimgタグからhtmlページからimgs urlsを取る、url startswith httpもし私がそれを取るならstartswith /私はこのurlをr​​outeに追加し、startwith //私はそれをafetr '?'または '&'、しかし時々私は間違ったURLを得る、私は知ってほしいと思っている正しいかどうかのyrlです – Vahan

+0

「正しい」をどう定義しますか? httpコード200を返しますか? – CodesInChaos

答えて

1

どのURLが正しいかを知る唯一の方法は、URLにHTTPリクエストを行うことです。たくさんの写真がある場合、これには常に時間がかかります。 HEAD HTTP要求(GETではなく、応答全体をダウンロードする)を行い、応答のステータスコードをチェックするだけで、その時間を最小限に抑えることができます。ステータスコードが200の場合は、あなたが探している画像を取得したと仮定します(404の場合は、URLが正しくないことがわかります)。あなたは200 repsonseを取得する場合、あなたが実際にあなたが望むイメージを取得していることを確認することができません:200応答を得ることに

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://example.com/"); 
req.Method = "HEAD"; 
HttpWebResponse resp = (HttpWebResponse)(req.GetResponse()); 
HttpStatusCode statuscode = resp.StatusCode; 

注:

コードのようなものかもしれません。他の何かを得るかもしれません。イメージURLからのリダイレクト

+0

URLが間違っていると、例外からの応答を得ることができません。私がしたくないtry/catchを使用しなければならなかった – Vahan

+0

ああ、それであなたは不正な形式のURLを持っていますか?私は本当にあなたの最大の問題はtry/catchだとは思わない。正規表現と照合してURLが有効かどうかを調べることができます。たとえば、このトピックのこのスレッドを参照してください:http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check-if-a-string-is-a-valid-url – Maple

+0

私はasp.net mvcで作業しています。コンソールでキャッチした例外をすべて表示すると、アプリケーションが停止しました。 URLフォーマットは有効ですが、既存のURLでなくてもかまいません – Vahan

関連する問題