【问题标题】:How do i view the post json data in a web browser?如何在 Web 浏览器中查看 post json 数据?
【发布时间】:2017-06-05 18:53:32
【问题描述】:

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

以下是我在 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:\xampp\htdocs\test* 中的 .php(somesite.php) 文件。我使用 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 的新手。谢谢。

【问题讨论】:

  • 你确定这是一个空白页而不是错误页吗?检查您的错误日志,并检查浏览器控制台。尝试沿途回显一些细节(var_dump($_POST); 在你的 isset 之前)

标签: java php json netbeans


【解决方案1】:

这是按预期工作的。

当您在浏览器中访问页面时,该页面是一个 GET 请求并且不应该显示任何内容,因为您正在检查为空/未设置的 POST

同样,您的 java 请求作为 POST 请求进入页面,您在控制台中看到 PHP 的 print_r 的输出,因此是 =&gt;stdClass

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

PHP 支持curl 发出请求,或者您可以使用非常流行的 GuzzleHTTP 库来实现这一点。

【讨论】:

  • 感谢您的有用回答,您能否指出我可以学习使用 curl 从一些示例或演示中提出请求的方向。
  • 在 google google.com/… 上很容易找到。我会推荐 GuzzleHTTP,因为 curl 可能会很痛苦。
猜你喜欢
  • 1970-01-01
  • 2014-03-13
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2013-03-10
  • 1970-01-01
  • 2019-06-22
相关资源
最近更新 更多