0

指定されたURLaがへのリンクであるかどうかを確認したいと思いますhttp://youtube.com

リンクにはさまざまな短縮バージョン(例)がたくさんあることを知っているhttp://youtu.beので、私が求めているのは、URLを解決して、最終的にがとして終わるかどうかを確認する方法http://youtube.comです。

入力例は次のとおりです。

http://www.youtube.com/v/[videoid]
http://www.youtu.be/watch?v=[videoid]

誰かがこれを行う方法を知っていますか?

4

4 に答える 4

3

リクエストを実行できますHEAD

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.youtu.be/Ddn4MGaS3N4");
request.Method = "HEAD";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
    Console.WriteLine("Does this resolve to youtube?: {0}", response.ResponseUri.ToString().Contains("youtube.com") ? "Yes" : "No");
}

正常に動作しているように見えます。エッジケースは不明ですが、うまくいくようです。

:404エラーなどのエラーチェックはここではありません)。

于 2013-02-12T01:09:17.543 に答える
2
                    bool isYoutube = false;

                    string host = new Uri(url).Host;
                    if (host == "youtube.com" || host == "youtu.be")
                    {
                        isYoutube = true;
                    }
于 2018-10-20T19:31:28.820 に答える
1

最初に、youtubeのホスト名を確認する必要があるかもしれません(私はそれがhttp://youtube.comであると仮定しています)が、それを確認した後、次のコードがあなたが望むことをします。

 using System.Net;

 IPHostEntry host = Dns.Resolve(theInputHostName);
 if (host.HostName == "http://youtube.com")
      // it resolves to youtube, do something.
于 2013-02-12T01:04:58.700 に答える
0

301特定のURLが(ステータスコード/を使用し302て)YouTube URLにリダイレクトされるかどうかを知りたい場合は、 WebClient// HttWebRequestwhateverを直接使用して応答を確認するか、HttpWebRequest.AllowAutoRedirectすべてのリダイレクトを無効にして手動でトラバースします(ステータスコードを確認してからLocationHTTPを確認します)。ヘッダ)。

于 2013-02-12T01:10:08.680 に答える