【发布时间】:2016-06-12 00:37:33
【问题描述】:
我正在将一个 JOSN 对象从 Java 传递给 PHP。我正在使用 jdk 1.8 ang WAMP 服务器。 下面是Java代码。
import java.io.IOException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.json.simple.JSONObject;
/**
*
* @author PReeeT Dash
*/
public class FromJava
{
public static void main(String[] args) throws IOException
{
JSONObject json = new JSONObject();
json.put("someKey", "someValue");
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try
{
HttpPost request = new HttpPost("http://localhost/PGP/JSONReq/tophp.php");
StringEntity params = new StringEntity(json.toString());
request.addHeader("content-type", "application/json");
request.setEntity(params);
httpClient.execute(request);
// handle response here...
} catch (Exception ex)
{
System.out.println("Error: Cannot Estabilish Connection");
}
finally
{
httpClient.close();
}
}
}
PHP 脚本:
$data = json_decode(file_get_contents("php://input"));
echo($data);
当我运行 PHP 文件时,它总是显示一个空页面。谁能帮我理解为什么它不起作用。
当我运行以下 PHP 代码时,它总是执行 else 条件。
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$data = json_decode(file_get_contents("php://input"));
echo($data);
}
else
{
echo "XXXXXX";
}
【问题讨论】:
-
您是否使用调试器单步执行以确保填充所有变量?
-
@Ascalonian 我可以用 Java 打印 JSON 对象。我尝试连接到不正确的 URL 以检查程序是否有效。它产生了一个例外。这表明连接建立成功。如果收到 POST 请求,我还在 PHP 端进行了测试。接收 POST 请求失败。