httpサーバーからインデックスページのアドレスを取得したいと思っています。
たとえば、
http://kakaku.com/
のアドレスを入力したら、
http://kakaku.com/index.html
を取得。また、
http://kakaku.com/pc
を入力したら、
http://kakaku.com/pc/index.html
を取得したいと思っています。
どのようにして取得したらよいでしょうか。
お願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
アドレスだけ取得できればいいんですよね。
以下のようなコードで良いかと思います。
C#
1using System; 2 3public class ReturnIndex 4{ 5 public static void Main(string[] args) 6 { 7 //引数があるとき、その引数はargsの配列になってる。 8 if args.length == 1 { 9 //末尾が "/" で終わっているかどうか。 10 if (args[0].EndsWith("/")) { 11 //入力されたアドレスに index.html を足す 12 Console.Write("{0}index.html", args[0]); 13 } else { 14 //入力されたアドレスに /index.html を足す 15 Console.Write("{0}/index.html", args[0]); 16 } 17 } else { 18 Console.Write("アドレスを1つ入力して下さい。"); 19 } 20}
これを実行すると、
bash
1#末尾が / で終わってるとき 2ReturnIndex.exe http://kakaku.com/ 3-> http://kakaku.com/index.html 4 5#末尾が / で終わってないとき 6ReturnIndex.exe http://kakaku.com/pc 7-> http://kakaku.com/pc/index.html 8 9#引数が1つ以外の時はエラーを返す。 10ReturnIndex.exe http://kakaku.com/ http://kakaku.com/pc 11-> アドレスを1つ入力して下さい。
と、なります。
やりたい事と合ってますかね?
参考:
コマンドライン引数
http://ufcpp.net/study/csharp/st_command.html
末尾の文字列と一致するかどうか判断する
http://jeanne.wankuma.com/tips/csharp/string/endswith.html
投稿2015/10/04 11:11
総合スコア654
0
csharp
1public class Program 2{ 3 public static void Main(string[] args) 4 { 5 string url = GetRelocatedUrl("http://kakaku.com/pc"); 6 Console.WriteLine(url); 7 } 8 9 private static string GetRelocatedUrl(string url) 10 { 11 var req = WebRequest.Create(url) as HttpWebRequest; 12 req.AllowAutoRedirect = true; 13 req.Method = "HEAD"; 14 15 using (var res = req.GetResponse()) 16 { 17 return res.ResponseUri.AbsoluteUri; 18 } 19 } 20}
書くだけ書いてテストしてみたら index.html が付いていませんでした…。
レスポンスヘッダからサーバー名は分かることが多いので、そこから当て推量でファイル名を付けて順次 200が返ってくるまでリクエストを送ってみたらどうでしょうか。
相手側の迷惑になるのでアレですが。
投稿2015/10/06 08:21
総合スコア870
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/12 15:11
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/04 11:29