• ベストアンサー

javaでhttpのテキスト表示

JavaでGET /test.html HTTP/1.0\n\nとして、サーバーからhtmlのテキストを受信して、表示させる方法が知りたいです。 HTTP/1.1 200 OK Content-Type: text/html; charset=euc-jp ... でなく、ボディ部(例えば、 <body> test </body>のtest) だけを表示させるプログラムが作りたいです。 yahooのトップページを表示させる方法でも構いません。

  • Java
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

> Basic認証を通過できる方法 簡単なのは、AuthenticatorのsetDefault()を呼んでおいてから、URLConnectionをオープンすることです。マルチスレッドで複数の異なるID/PWを使い分けるなら、個々のURLConnectionごとにsetRequestProperty("Authorization", "Basic " + ....);とするほうが便利でしょう。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 GETメソッドを使ってるって事は、ひょっとして今java.net.Socketを使ってる?  URLクラスとHTTPUrlConnectionクラスを使うと良いよ。"http://hogehoge/fugafuga"というURL文字列が一個あるだけで接続からボディの取得まで全自動でやってくれる。後はそれを<body>部分で切り出して表示すれば良い。  いまいち何が分からないのか分からないので具体的な説明ができない。ここまでやってみたけど、ここで詰まってるというような情報があれば良いのじゃが。

kourei
質問者

補足

回答ありがとうございます。 先ほどURLクラスとHTTPUrlConnectionクラスでyahooのHTMLを取得することができました。 私がしたいのは、例えばBasic認証を通過できる方法が知りたいです。 アカウントとパスワードは自分で設定しているのでわかっているのですが、 401という文字列を取得するだけで、その後どのようにすればよいかわかりません。何かよいサンプルはありますか?

関連するQ&A

  • PerlでHTTPヘッダの\nを外すとエラー

    【PerlでHTTPヘッダの最後の\nを1つでも外すとエラーになります】 初歩的なことですみません。 HTTPヘッダーの最後の\n\nなんですが、ヘッダーの文字列の後に改行が2つ?? と思って この\nを外して、 print "content-type:text/html;charset=utf-8"; とすると、「500 Internal Server Error」 print "content-type:text/html;charset=utf-8\n"; と\nが1つでも 「500 Internal Server Error」 となります。 「\n\n」と2つあればエラーにはならないんですが、なぜ必ず2つ必要なのでしょうか?これは改行が2つって意味ですかね? print "<html>\n"などの\nはソース上やコンソール出力結果上での改行なのはわかります。 この\nは改行したくなければ書かなくてもエラーになりませんよね。(当たり前ですが・・ #!/usr/bin/perl print "content-type:text/html;charset=utf-8\n\n"; ←HTTPヘッダーの\n\n print "<html>\n"; print "<body>\n"; print "<p>テキスト</p>\n"; print "</body>\n"; print "</html>\n";

    • ベストアンサー
    • Perl
  • ジオシティーズで作るのならeuc-jp?

    yahooジオシティーズでHPを作る際は、絶対に <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp"> ってやらないとうまくひょうじできないのでしょうか? <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp"> をしないでIEで表示しようとすると文字化けしてしまいます。

    • ベストアンサー
    • HTML
  • HEADERについて

    無知でお恥ずかしいのですが、PHPで出力する際 header("Content-Type: text/html;charset=EUC-JP"); などと最初にヘッダーを出力すると思うのですが、例えばtest.phpが以下のようになっていた場合でもPHPでヘッダーを出力する必要があるのでしょうか? test.php ※1<?php header("Content-Type: text/html;charset=EUC-JP"); ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> <TITLE></TITLE></HEAD> <BODY> TEST <?php echo $test; ?> </BODY> </HTML> 参考書などを見てみると「全ての出力の前に記述する必要がある」と書いてあるだけで、書かずとも正常に表示されますし、仮に文字化けしても <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> と追加すれば文字化けも解決するので、疑問は感じつつも思い出したときにPHPにもヘッダを記述するようにしていたのですが、少しづつPHPを勉強しやれる事が増えてくる内に、記述してあるものと記述して無いものが混在してきて気持ち悪く感じてきました。 皆さんはどのようにされていますか? ※他サイトで配布されているPHPスクリプトなども見てみたのですが、毎回記述している方、一切記述していない方それぞれでした。 あと、全く違う質問ですが、MYSQL接続中にエラー処理でexit;する場合、exit;する前にMYSQL接続を切断する必要ってあるのでしょうか?

    • ベストアンサー
    • PHP
  • CGIにJAVAの記述をしたい

    CGIプログラムの中にJAVAの記述をしたいのですが うまくいきません。 ヒアドキュメントでくくってみましたが 500エラーで表示されませんでした。 どう記述すれば動いてくれるんでしょうか? print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n"; print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$loaddir/style.css\">\n"; print "<title>$title</title>\n"; ここに下記のJAVA文を入れたいです。 print "</head>\n"; 記入したいJAVA <SCRIPT language="JavaScript"> <!-- document.write('<img src="momo/123.cgi?' + 'javaref=' + document.referrer + '" width=1 height=1>'); // --> </SCRIPT>

    • 締切済み
    • CGI
  • phpのincludeで表示を変化させたい

    includeでHTMLの表示を変えられるように したいのですが、どうもうまくいきません。 (ブラウザ表示が真っ白になる。) 以下のようなソースを書いてみました。(php4.3.11,apache) (1) test01.php <?php $param = $_GET['param']; include ("./includes/datapack01.php"); ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=EUC-JP"> <TITLE>COMPANY A - <?php echo $title; ?></TITLE> </HEAD> <BODY> <span> test </span> </BODY> </HTML> (2) datapack01.php <? if($param == "8") { $title = "お問い合わせ : オーダー申し込み"; } ?> 意図としては、http://hoge.com/test01.php?param=8 とアクセスすれば、ブラウザのタイトル欄に 「COMPANY A お問い合わせ : オーダー申し込み」 と表示させたいところですが、 実際は、ブラウザ表示は真っ白となってしまいます。 http://hoge.com/test01.php とすれば、「test」とのみ表示されるのですが・・・

    • ベストアンサー
    • PHP
  • リッチテキストエディターでの画像表示

    リッチテキストエディターでの画像の表示で質問ですが、 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />にしても、リンクにならずにhtmlがそのままテキストで表示されてしまいます。 どうすれば、htmlとして表示できるのでしょうか?

    • 締切済み
    • PHP
  • POSTされた値をEUCで表示したい

    <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> </head> <body> <form action="test2.php" method="POST"> <input name="str1" value="テストです"> <input type="submit"> </form> </body></html>'; exit; } ?> こうして送信されたデータは <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </head><body>'; echo $_POST['str1']; ・・・・・ として表示しますが、このままのテストソースではSJISで普通に表示されますが、EUCで表示するにはWindowsの中のphp.iniを編集すればよいと思います。 どのようにすればよいですか? test2.phpが・ニ・ケ・ネ、ヌ、ケと表示したら成功です。

    • 締切済み
    • PHP
  • "Content-type:text/html;charset=shift_JIS\n\n" がテキスト表示されてしまう。

    CGIで print "Content-type:text/html;charset=shift_JIS\n\n"; を出力すると その文字列がそのままブラウザにテキスト表示され、その後ろの操作、 例えば、 print "Status: 301 Move Permanent\n"; print "Location: http://localhost/file/data-1.lzh\n\n"; も、単純に文字列として表示されてしまいます。 ところが、print "Content-type:text/html;charset=shift_JIS\n\n"; の行を削除すると、 もともとの目的の動作(上記の例ではファイルのダウンロード画面ポップアップ)になります。 このように、print "Content-type:text/html;charset=shift_JIS\n\n";を書かなくて済む (あるいは書かない方が良い場合)というのは、なぜでしょうか。 サーバによっては動作が変わるのでしょうか。 ※そのCGI内で、print "Content-type:text/html;charset=shift_JIS\n\n"; を2行書いてあるというようなことはありません。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 変数を渡して新しいウィンドウで表示させるには

    http://iskiso3.hustle.ne.jp/i.php 上のページのように最初のページで入力してもらった変数を次のページにPOSTで渡すことは出来るのですがこのときに新たなウィンドウで結果を表示させるにはどのようにスクリプトを書き換えたらよいのでしょうか? JAVAを使えば出来るということまではわかり試行錯誤してみたのですが変数が渡されなかったり問題がおきてしまいました。 一応上記のページのスクリプトは 最初のページが ------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> </head> <body> <form action="o.php" method="post"> メッセージを入力してください。<br> <input type="text" name="mes" size="30"> <input type="submit" value="送信"> </form> </body> </html> ------------------------------------- で、2番目のページが ------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> </head> <body> <?php $mes = $_POST['mes']; echo "$mes"; ?> </body> </html> ------------------------------------- というようになっています。 ご教授よろしくお願いいたします。

    • ベストアンサー
    • Java
  • POSTメゾットでの値の受け渡しについて

    フォームからの値の受け渡しについて質問いたします。 <form ction="test.php" method="POST">   <input type="text" name="text">   <input type="submit" value="検索"> </form> で渡されたtextを下記スクリプトで受け取れません。 ====testphp==== <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <? print ".$_POST['text']."; ?> </body> </html> ========== ただ気になることがあり、このファイル達が置かれているディレクトリの.htaccessに <Limit GET POST> require valid-user </Limit> の記述があります。 このディレクトリはメンバー制限をかけているディレクトリですが、 メンバーとしてこのディレクトリのTOPページに入り、 検索フォームを入力してsubmitしても値はブロックされるものでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう