- 締切済み
簡単なHTTP-Get
こんにちわ。 初めて質問します。 サイトの簡易試験を行いたくJAVAを使ってHTTPのGetリクエストを送信したいと考えています。 要件は以下の通りです。 1、HTTPはGetリクエストを使用する 2、URLはコードに記載ではなく特定のファイル(URL.txt)を1行づつ読み込む 3、User-Agentを都度変更できるようにする ということを行いたいのですが、皆様にとっては簡単なことかもしれませんが、 なかなか上手くいきません。 手助けをお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
テキストファイルから1行ずつ読み込むのはjava.io.FileReaderクラスを使ってください。 BufferedReader br = new BufferedReader(new FileReader(file)); とすれば、ANo.1のお礼に貼られているコードでreader.readLine()としているのと同じように処理できます。
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
>指定したURLへアクセスしてbodyは取得できました。 >やりたいのはpostではなくてGetです。 Get は URL にパラメータを含めるだけです。 setDoOutput は不要です。 >あと、User-Agentがうまくサーバーに渡せていないようです。 根拠は? サーバ側で String agent = request.getHeader("User-Agent"); とかして、渡っているかチェックされたのでしょうか? まず簡単な試験用のサーブレットとかを作ってみてはいかがでしょう?
- salsberry
- ベストアンサー率69% (495/711)
> なかなか上手くいきません。 その、上手くいかないコードを質問に書けば皆がよってたかって添削してくれますよ。 何ができていないのかを整理することから始めましょう。 たとえば、URL.txtというファイルに書かれているURLを1行ずつ読み込むこと (読み込むだけ、HTTP接続はしない) はできますか? User-Agentの指定をせず、決め打ちのURLを使うならばHTTP接続することはできますか? 「HttpURLConnection GET サンプル」とかでググればコード例はいくらでも見つかります。
お礼
ありがとうございます。コードを張ります。 public class GetTest { public static void main(String[] args) { String urlString = "http://任意のURL"; try { URL url = new URL(urlString); URLConnection geturl = url.openConnection(); geturl.setDoOutput(true); geturl.setRequestProperty("User-Agent", "任意のUA"); geturl.setRequestProperty("Accept-Language", "ja"); OutputStream outstm = geturl.getOutputStream();// String postStr = "foo1=bar1&foo2=bar2";// PrintStream prstm = new PrintStream(outstm); prstm.print(postStr);//データをPOSTする prstm.close(); InputStream instm = geturl.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(instm)); String st; while ((st = reader.readLine()) != null) { System.out.println(st); } reader.close(); [エラー処理] } } } 指定したURLへアクセスしてbodyは取得できました。 やりたいのはpostではなくてGetです。 あと、User-Agentがうまくサーバーに渡せていないようです。 URLファイルのオープンと読み込みは試していません。 以上、よろしくお願いいたします。
お礼
皆様ありがとうございました。 おかげさまで実行できるようになりました。 遅くなりましたがお礼申し上げます。