質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1312閲覧

java PHP アクセス

hohormy

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/01/20 03:02

javaからブラウザに表示している値を取得するプログラムを作りたいです。

http://localhost:8888/route.php?from="出発駅"&to="到着駅"
で、出発駅から到着駅までかかる時間をブラウザに数字だけ表示するようにしています。

ブラウザに表示する段階では駅名を変えてもうまくいくのですが、
実際にjavaから値を取得しようとすると、受け取った値が空だったり、ブラウザに表示した値と違っていたりして正しい値を取得できません。

どのようにプログラムを組めばうまく取得できますか。

import java.io.*;
import java.net.URL;

class FileGet {

public static StringBuffer fileGetContents (String url, String encode) { StringBuffer buffer = new StringBuffer(); try { InputStream is = new URL(url).openStream(); InputStreamReader isr = new InputStreamReader(is, encode); BufferedReader in = new BufferedReader(isr); String s = null; while ((s = in.readLine()) != null){ buffer.append(s).append("\n"); } } catch (Exception e) { System.out.println( e.toString() ); buffer = null; } finally { return buffer; } } public static StringBuffer fileGetContents (String url) { return fileGetContents ( url, "JISAutoDetect" ); } public static void main(String[] args) { String from ="池袋"; String to = "新宿"; StringBuffer htmlBuffer = FileGet.fileGetContents("http://localhost:8888/route.php?from="+from+"&to="+to); System.out.println(htmlBuffer.toString()); }

}

このプログラムで上記のような不具合が起きます。

修正箇所やプログラムの組み方など教えていただきたいです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izkn

2016/01/20 03:17

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答1

0

encode はレスポンスにかかっています。
数値だけ返すなら JISAutoDetect は不要ではないですか?

これに対し、リクエストは日本語文字列を送信していますよね。UTF-8 か内部コードなので UTF-16 かですが、サーバ側が期待している文字コードと合っていますか?
そこが気になりました。

また、サーバ側が期待している文字コードは決まっているのですから、JISAutoDetect は使わず、明示的に指定した方が良いと思います。

一旦、System.out.println(URLEncoder.encode(url, "UTF-8")); などしてコンソール出力されたURLをブラウザで表示し、期待した値か確認されてみてはいかがでしょうか?

投稿2016/01/20 04:50

NARH

総合スコア209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問