发布请求接收空值

时间:2015-04-02 11:15:57

标签: php android

我正在开发一个软件,其中我向服务器发送一个发布请求(用PHP编写)但服务器接收空值。任何帮助,将不胜感激。

附上Android和PHP文件。

**This is my Android file:**
    public static JSONObject tosend = new JSONObject();
                            for(int i=0;i<3;i++)
                            {
                            JSONObject jo = new JSONObject();
                            jo.put("infoName", infoName[i]);
                            jo.put("infoNumber", infoNumber[i]);
                            jo.put("direction",direction[i]);
                            jo.put("version",version[i]);
                            JSONArray ja = new JSONArray();
                            ja.put(jo);
                            tosend .accumulate("introduceesJson", ja);
                            }
     String link = "http://172.65.45.7/checkAppInstalled.php";
                                DefaultHttpClient httpclient = new DefaultHttpClient();
                                HttpPost httpPostRequest = new HttpPost(link);
                                StringEntity se;
                                se = new StringEntity(tosend.toString());
                                // Set HTTP parameters
                                se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
                                httpPostRequest.setEntity(se);
                                httpPostRequest.setHeader("Accept", "*/*");
                                httpPostRequest.setHeader("Content-type", "*/*");
                                //httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression
                                //long t = System.currentTimeMillis();
                               /* HttpPost httpPostRequest = new HttpPost(link);

                                List<NameValuePair> nVP = new ArrayList<NameValuePair>(2);
                                nVP.add(new BasicNameValuePair("json", tosend.toString()));

                                httpPostRequest.setEntity(new UrlEncodedFormEntity(nVP));*/
                                //Log.e("Posted data", "TestPOST - nVP = "+nVP.toString());

                                // Hand the NVP to the POST



                                Log.e("posted data",tosend.toString());
                                HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);

                                if (response.getStatusLine().getStatusCode() == 200)
                                {
                                    HttpEntity entity = response.getEntity();
                                    String jsonReceived = EntityUtils.toString(entity);
                                   Log.e("result received",jsonReceived);
                                }

这是我的PHP代码:

$jsonString = file_get_contents('php://input');
$jsonObj = json_decode($jsonString, true);


if(!empty($jsonObj)) { 

foreach($jsonObj as $json){
   echo $json['infoName'];
   echo $json['infoNumber']; 
   echo $json['direction'];
   echo $json['version'];
}   
}
else
{
    echo "json empty";
}

以下是logcat结果:

04-02 15:34:07.882    9526-9704/com.thoughtrix.introduce E/posted data﹕ {"introduceesJson":[{"infoName":"Aa","direction":"2","version":"1","infoNumber":"96 35 874125"},[{"infoName":"Aa","direction":"2","version":"1","infoNumber":"96 35 874125"}]]}

Result Received :    json empty.

1 个答案:

答案 0 :(得分:0)

不要从json那里了解多少,但摆弄了一下:试试这个:

var_dump($jsonObj['introduceesJson']);
$jsonArray = $jsonObj['introduceesJson']; 
foreach($jsonArray as $json)
  { 
  echo("------\n"); 
  var_dump ($json); 
  foreach ( $json as $jsonarray )
    {
      echo(" ------\n");
      var_dump ($jsonarray);
      echo $jsonarray['infoName'];
      echo $jsonarray['infoNumber'];
      echo $jsonarray['direction'];
      echo $jsonarray['version'];
      echo ("\n");
      } 
    } – 

你可以发布完整的php脚本来完成后提取所有变量吗?我很困惑......