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

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

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

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

PHP

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

Q&A

1回答

3225閲覧

PHP javaからアクセス

hohormy

総合スコア10

Java

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

PHP

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

0グッド

0クリップ

投稿2016/01/19 12:04

PHPでブラウザに表示した結果を、javaで取得するプログラムを作っています。

PHPのプログラムroute.phpを使い
http://localhost:8888/route.php?from=出発駅to=到着駅
でブラウザに出発駅から到着駅までの所要時間を表示させました。

この結果の数値をjavaの方で受け取りたいのですが、

StringBuffer htmlBuffer =
fileGetContents("http://localhost:8888/route.php?from="+from+"&to="+to);

でfrom(出発駅)とto(到着駅)を渡し、htnlBuffer.toString();で結果の数値を取得しようとプログラムを組んだのですが、うまく取得できません。

元のプログラム(結果をコマンドプロンプトに表示する)は
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:18

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

回答1

0

GET通信をする場合は、HTTPプロトコルを使う必要があります。
元のコードだとおそらくHTTP通信ができないと思うので、
一応模範的なソースを載せておきますね。

Java

1 2String from ="池袋"; 3String to = "新宿"; 4 try { 5 URL url = new URL("http://localhost:8888/route.php?from="+from+"&to="+to); 6 7 HttpURLConnection connection = null; 8 9 try { 10 connection = (HttpURLConnection) url.openConnection(); 11 connection.setRequestMethod("GET"); 12 13 if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { 14 try (InputStreamReader isr = new InputStreamReader(connection.getInputStream(), 15 StandardCharsets.UTF_8); 16 BufferedReader reader = new BufferedReader(isr)) { 17 String line; 18 while ((line = reader.readLine()) != null) { 19 System.out.println(line); 20 } 21 } 22 } 23 } finally { 24 if (connection != null) { 25 connection.disconnect(); 26 } 27 } 28 } catch (IOException e) { 29 e.printStackTrace(); 30 } 31

こんな感じですかね。
参考(JavaでのHTTP通信)

あとは、lineを連結するなりして数値に変換してください。

投稿2016/01/20 12:02

luma

総合スコア183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問