如何在PHP服务器上显示android POST字符串?

时间:2016-09-15 11:23:40

标签: java php android json httpurlconnection

我正在尝试将json字符串从我的Android应用程序发送到我的php服务器。下面是我的mobiledb_control.php和httpconnect.java

中的完整代码

Log.v(" HTTPSENDER","工作");运行,我没有错误。 但是我的error_log(" in");没有跑。

如何将通过android发送的JSON显示到我的error_log()?

HttpConnect.java:

public class HttpConnect {
    public HttpConnect(){

    }
    public void sendData(String jsonObject){
        try{
            URL url = new URL("http://www.alextanti.net/PHPDashboard/Backend/mobiledb_control.php");
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);

            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
            output.write("json="+jsonObject);
            output.flush();
            output.close();
            Log.v("HTTPSENDER","WORKED");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

mobiledb_control.php:

   <?php
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set("error_log", "../Logs/error.log");
error_reporting(E_ALL);
if(!empty($_POST['json'])){
  echo(var_dump($_POST['json']));
  error_log($_POST['json']);
}
$headers = apache_request_headers();

?>

4 个答案:

答案 0 :(得分:0)

在PHP代码中尝试这个

并启用此类错误报告

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

print_r($_POST);

了解您从帖子中获得的内容。

答案 1 :(得分:0)

  1. 使用php的编码和解码功能来制作和解析json。

     $request=json_decode($_POST['json']); // it gives the Array
      foreach($request as $values){
      echo($values['your_value1'])
       echo($values['your_value2'])
      }
    
  2. 请参阅此网址:http://php.net/manual/en/function.json-decode.php

答案 2 :(得分:0)

在设计服务器 - 客户端通信时,必须确保客户端和服务器可以相互通信。考虑到这一点,您可以通过在try block中的代码中添加它来提供服务器响应代码:

{{ pagination.info }}
{{ pagination.links }}
{% for e in entries_sorted %}

        <div class="row"> 
        <div class="col-md-offset-3 col-md-6 feed_item">
            <h1><a href="{{ e.link }}">{{ e.title }}</a></h1>
            <h5>Published on: {{ e.published }}</h5>
            {% for content in e.content %}
                {{ content.value|safe }}
                </div>
                </div>
            {% else %}
                 <p>{{ e.summary_detail.value|safe }}</p>
                </div>
                </div>
            {% endfor %}
{% endfor %}
{{ pagination.links }}
  

它将分别返回200和401。如果没有代码,则返回-1   从响应中辨别出来(即,响应不是有效的HTTP)。

干杯!

答案 3 :(得分:0)

似乎修复了它,但我不知道如何

PHP文件:

<?php
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set("error_log", "../Logs/location.log");
error_reporting(E_ALL);
if(!empty($_POST['json'])){
  echo(var_dump($_POST['json']));
  error_log($_POST['json']);
}
?>

JAVA文件:

public class HttpConnect {
    public HttpConnect(){

    }
    public void sendData(String jsonObject){
        try{
            URL url = new URL("http://www.alextanti.net/PHPDashboard/Backend/mobiledb_control.php");
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
            output.write("json="+jsonObject);
            output.flush();
            output.close();
            Log.v("HTTPSENDER","WORKED");
            Log.v("HTTPSENDER",""+conn.getResponseCode());
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}