通过Android连接到PHP的问题

时间:2017-05-18 21:55:54

标签: java php android json

我正在尝试将我的Android应用程序中的JSON对象发送到我的网站数据库。但是,我似乎没有得到任何类型的连接,我也没有得到任何异常错误。我目前正试图在eclipse中使用java连接,但仍然没有运气。

submitAlbum.php:

<?php
if(isset($_POST["albumId"])){
    $albumId = json_decode($_POST["albumId"]);
}

java代码:

String albumId = "qjlix";

    try{
        //Creates JSON object
        JSONObject tempObj = new JSONObject();
        tempObj.put("albumId", albumId);

        //Creates connection to URL
        URL targetUrl = new URL("http://example.com/submitAlbum.php");
        HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection();
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setConnectTimeout(500);
        conn.setRequestProperty("Content_Type", "application/json; charset=UTF-8");

        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
        writer.write(tempObj.toString());
        writer.flush();
        writer.close();
    } catch (Exception e){
        System.out.println(e.toString());;
    }

他们缺少什么或做错了吗?

2 个答案:

答案 0 :(得分:0)

您没有发送POST参数/键&#39; albumId&#39;其中的值是json文本。而是发送包含json参数&#39; albumId&#39;。

的json文本

Php脚本和客户端代码不匹配。

首先确定是否要POST键=值对。或者想要发布json文本。然后处理。

答案 1 :(得分:0)

我不知道为什么,但是在客户端运行之前,PHP甚至都不会运行:

conn.getResponseCode();

所以最后我只是让PHP代码已经设置了一个albumId,它只需要一些东西来连接它。然后它会将它提交到我的数据库。

PHP:

 $albumId = "qjlix";

然后在我的java中,我需要做的就是获取PHP文件的连接。

爪哇:

 try{
        URL url = new URL("http://example.com/submitAlbum.php");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
        writer.write("albumId = this");
        writer.close();

        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            System.out.println("worked");
        }else{
            System.out.println("Did not work");
        }

    }catch(Exception e){
        System.out.println("exception thrown");
    }

我正在使用IntelliJ测试Java,即使它将在Android应用程序中使用。我打算只使用Volley,因为有时HttpURLConnection很奇怪。感谢!!!