如何在Web浏览器中查看post json数据?

时间:2017-01-20 17:43:12

标签: java php json netbeans

我正在开发一个迷你项目(REST应用程序),我需要将json数据从java发布到php并显示它。但即使在过去两天尝试之后,我也无法完成这项任务。所以我做了一个单独的文件来测试它是如何工作的。

以下是我在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();
    }
}  
}

以下是我的 .php (somesite.php)文件,该文件位于* C:\ xampp \ htdocs \ test *中。我用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 个答案:

答案 0 :(得分:1)

这正如预期的那样有效。

当您在浏览器中访问GET请求的页面时,由于您正在检查POST是否为空/未设置,因此不应显示任何内容。

同样,您的java请求作为POST请求进入页面,您在控制台中看到PHP print_r的输出,因此=>和{{ 1}}。

要在浏览器中看到这一点,您需要向PHP提供服务请求。您目前正在尝试从java推出,然后在浏览器中查看它是不可能的。基本上你的代码是倒退的。

PHP有stdClass支持发出请求,或者你可以使用非常流行的GuzzleHTTP库。