java http发布到php服务器,什么都没发生

时间:2016-04-10 19:31:58

标签: java php json http

我正在尝试将JSON字符串发布到我的PHP服务器,但服务器端根本没有发生任何事情。

这是服务器代码:

<?php
    $json = $_POST['json'];
    $decoded = json_decode($json);
    echo($decoded);
?>

这是JAVA代码:

public void sendError(Error e)
{
    String json = e.toJSONString();
    try
    {
        if(url == null)
        {
            url = new URL("http://www.rstougaard.dk/errorHandler");
        }
        if(conn == null)
        {
            conn = (HttpURLConnection) url.openConnection();
        }
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
        conn.setRequestProperty("json", URLEncoder.encode(json));
        output = new DataOutputStream(conn.getOutputStream());

        conn.connect();
        output.writeBytes("json=" + URLEncoder.encode(json, "UTF-8"));
        output.flush();
        BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        while(input.ready())
        {
            System.out.println(input.readLine());
        }

        System.out.println(conn.getResponseCode() + " " + conn.getResponseMessage());
    } catch (MalformedURLException ex)
    {
        Logger.getLogger(ConnectionController.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException exc)
    {
        Logger.getLogger(ConnectionController.class.getName()).log(Level.SEVERE, null, exc);
    }
}

.getResponseCode()和.getResponseMessage()分别返回'200'和'OK'。而inputStream只是打印来自站点的php代码,后跟JSON字符串,这对我来说很奇怪。

我没有来这里?

修改

我已经在.setResponseMethod()中更改了“GET to”POST。但仍然没有用。

修改

我尝试使用curl来检查服务器响应,但它与我的java代码中的inputStream是一样的。它从网站打印html / php代码,而不是给我回复。

2 个答案:

答案 0 :(得分:0)

您可能正在从客户端代码发送GET请求:

conn.setRequestMethod("GET");
服务器检查POST时

。尝试将其更改为“POST”

此外,正如Evgeny Lebedev建议的那样,您可能会尝试使用CURL或类似的东西预先测试您的服务器响应

答案 1 :(得分:0)

我弄清楚出了什么问题。我基本上是个傻瓜,并且认为如果我运行代码我可以检查是否有任何输出发生在chrome中,但当然它没有,因为这是一个不同的请求,他们不会发生冲突。

上面的代码在我的案例中按预期工作。但无论如何,谢谢你们的帮助,并为此感到抱歉!