私はWebサイトをクロールするためにC#アプリケーションで書いています。 問題が発生しました このURLがファイルまたはウェブページにつながっていることがわかりました。 リクエストされたURLを送信することなくこの問題を解決するにはどうすればよいですか?URLを確認する方法はC#のファイルタイプかウェブページタイプですか?
-1
A
答えて
2
Uniform Resource Locatorはファイルシステムパスに匹敵しないため、要求を送信することはできません。以下のURLは.jpg
で終わるながらたとえば、それは明らかに絵ではありません。ここで
はあなたの心を変更することを決定した場合にどのように、次のとおりです。
public bool IsFileContent(string url)
{
var request = HttpWebRequest.Create(url);
request.Method = "HEAD";
switch (request.GetResponse().ContentType)
{
case "image/jpeg": return true;
case "text/plain": return true;
case "text/html": return false;
default: // TODO: add more case as needed
throw new ArgumentOutOfRangeException();
}
}
-1
私が考えることができる唯一のことは、URLの最後にファイルの拡張子を確認することです。拡張子で終わらないURLを使用してファイルを送信できるため、これで100%の成功率は得られません。それはファイル名に拡張子の付いたファイル名を終えるようにするのが普通の方法だと言われています。
1
あなたがしたいことは文字通り不可能です。 URLはファイルやウェブページにつながりません。それらはハンドラを要求するようにルーティングされます。リクエストハンドラは、HTMLレスポンス、ファイルダウンロード、または他のタイプのレスポンスを返すことができます。 「.html」や「.pdf」などの拡張機能は、応答の種類を示すものです。しかし、URLには、応答の種類を示さない拡張子、または(まさにこのページのように)拡張子がないことがあります。
HTTPリクエストの応答タイプは、URLだけでは判別できません。
関連する問題
- 1. マジックナンバーでファイルタイプを確認する
- 2. URLがホームページかどうかを確認する方法
- 3. URLが外部リンクかどうかを確認する方法
- 4. URLを確認する方法をスウィフト
- 5. アップロードのファイルタイプを確認する
- 6. dropzoneのファイルタイプを確認する
- 7. Windowsのファイルタイプを確認する
- 8. ファイルタイプがbashのASCIIテキストであるかどうかを確認
- 9. YouTtubeの動画を確認する方法URLは現在有効ですか?
- 10. URLのリストが存在するかどうかを確認する方法
- 11. 入力がCであるかどうかを確認する方法は?
- 12. 文字列がGoogle検索かURLかを確認する方法は?
- 13. ウェブサイトのURLパラメータを確認する方法はありますか?
- 14. Selenium C# - ドロップダウンリストを確認する方法
- 15. C#でサーバソケットの状態を確認する方法はありますか?
- 16. PHPにURLが存在するかどうかを確認する最良の方法は何ですか?
- 17. OpenMPがC++プログラムで動作するかどうかを確認する方法
- 18. in c#番号が完全か正確かを確認する方法
- 19. C#でモバイルを確認する信頼できる方法は?
- 20. データベースへのURLが有効かどうかを確認する方法?
- 21. djangoで前のURLを確認する方法
- 22. C#テキストボックスの確認方法
- 23. Djangoフォームのクリーンメソッドでファイルタイプを確認するにはどのように魔法を使用しますか?
- 24. URLが既に開いているかどうかを確認する方法
- 25. jQuery:コンテンツにURLがあるかどうかを確認する方法
- 26. URLでIDを確認してgetJSONで出力する方法
- 27. 親がスパンかアンカーかをHTMLで確認する方法は?
- 28. URLが有効であることを確認する方法
- 29. どうかを確認する方法
- 30. Apache POIでMS Excelのファイルタイプを確認する
のURLコンテンツを提供する。 「ファイル」と「ウェブページ」の違いは何ですか?あなたは実際に応答の 'Content-Type'ヘッダーを要求していますか? – SLaks
あなたはどのクライアントを使用していますか? URLへのHEADリクエストを作成し、レスポンスヘッダーのcontent-typeを調べることができるはずです。 – Lee
''要求されたURLを送信せずにこの問題を解決する方法はありますか? '' - できません。 URL自体は単なるアドレスです。そのアドレスに何があるかについての情報を提供するものではありません。何かを探す場所を教えてくれるだけです。そのアドレスにあるWebサーバーは* anything *を返すことができます。そのアドレスの内容に関する詳細情報を取得するには、いくつかの*リクエスト(最小限は 'HEAD'リクエスト)をしなければなりません。 – David