2017-01-20 5 views
1

私はjavaからphpにjsonデータを投稿して表示する必要があるミニプロジェクト(RESTアプリケーション)に取り組んでいます。しかし、私は過去2日間試してもこの仕事を達成することができませんでした。だから私は別のファイルを作って、これがどのように動作するかをテストしました。ウェブブラウザでポストjsonデータを表示するにはどうすればよいですか?

次は私がNetBeansで実行私の.javaファイル

import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.util.EntityUtils; 

public class NewClass { 
public static void main(String[] args) { 
String json = "{\"message\":\"This is a message\"}"; 

HttpClient httpClient = new DefaultHttpClient(); 
try { 
     HttpPost request = new HttpPost("http://localhost/test/somesite.php"); 
     StringEntity params =new StringEntity("message=" + json); 
     request.addHeader("content-type", "application/x-www-form-urlencoded"); 
     request.setEntity(params); 
     HttpResponse response = httpClient.execute(request); 
     // handle response here... 
     System.out.println(EntityUtils.toString(response.getEntity())); 
     EntityUtils.consume(response.getEntity()); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } finally { 
     httpClient.getConnectionManager().shutdown(); 
    } 
} 
} 

次は* Cにある私のの.php(somesite.php)ファイルです:\ XAMPP \ htdocsに\テスト*。私はxamppを使用します。

<?php 
if(isset($_POST["message"]) && !empty($_POST["message"])) 
{ 
    print_r($_POST); 
    $json_string = $_POST["message"]; 
    $json = json_decode($json_string); 
    print_r($json); 
} 
?> 

私はNetBeansでの.javaファイルを実行すると、私は次のようoutput window

を取得しかし、私は、私は何を取得ブラウザで私の.PHPページを更新するとき、私はblank page 方法を取得します.javaから.phpに投稿したjsonデータをブラウザに表示するにはどうすればよいですか?

私はjsonとphpを初めて利用しています。ありがとうございました。

+1

空白のページで、エラーページではありませんか?エラーログを確認し、ブラウザコンソールを確認してください。お使いのissetの前に 'var_dump($ _ POST);'という方法でいくつかの詳細をエコーし​​てみてください – aynber

答えて

1

これは期待どおりに機能しています。

ブラウザでGETリクエストのページにアクセスしているときに、空であるか設定されていないPOSTをチェックしているため何も表示されません。

同様にして、JavaリクエストはPOST要求としてページにそれを作り、あなたはコンソールしたがって=>stdClassでPHPのprint_rの出力を見ています。

ブラウザで確認するには、PHPからJavaへのサービスをリクエストする必要があります。あなたは現在、javaからプッシュしようとしていて、ブラウザでそれを見ることができません。基本的にコードは後方にあります。

PHPはリクエストを作成するためにcurlのサポートを持っています。また、非常に人気のあるGuzzleHTTPライブラリを使用することもできます。

+0

参考にしていただきありがとうございます。デモ – panarama

+0

Googleでかなり簡単にそこにありますhttps://www.google.com/search?q=Using+curl+to+access+API&oq=Using+curl+to+access+API&aqs=chrome..69i57.10416j0j7&sourceid=クロム&ie = UTF-8。私はGuzzleHTTPがカールが痛みを感じることをお勧めします。 – nerdlyist

関連する問題