获取http响应PHP和ANDROID


Getting http response PHP and ANDROID

我正在尝试获取HTTP响应。它在客户端不起作用。试图用"邮差"得到回应,结果成功了。

  1. 我确信从PHP方面来说一切都很好
  2. 也许是因为类被弃用了

Android代码:`

            //Connect to mysql.
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost("www.example.com/register.php");
            //JSON object.
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("username", register_username);
            jsonObject.put("password", register_password);
            //Entity builder to send value.
            EntityBuilder entityBuilder = EntityBuilder.create();
            entityBuilder.setText(jsonObject.toString());
            httpPost.setEntity(entityBuilder.build());
            //Getting response
            HttpResponse response = httpClient.execute(httpPost);
            String responseBody = EntityUtils.toString(response.getEntity());
            //When I try to print it out, I get value of "org.apache.http.message.BasicHttpResponse@32857430"`

PHP代码:`

JSON EXAMPLE:
<?php
$con=mysqli_connect("localhost","tx","xxx","txxxt");
$data = json_decode(file_get_contents('php://input'));
$username = $data->{'username'};
$password = $data->{'password'};

$query = mysqli_query($con, "SELECT * FROM user WHERE username='$username'");
if(mysqli_num_rows($query) > 0){
$response = new stdClass();
$response->status="Already exists";
$response->code=0;
echo json_encode($response );}
else{
$response = new stdClass();
$response->status="Registered";
$response->code=1;
echo json_encode($response );
$sql_query = "insert into user values('$username','$password', 'null', 'null' ,'null');";
mysqli_query($con, $sql_query) or die (mysqli_error($con));
}

mysqli_close($con);
?>

`

任何帮助都将不胜感激!

我设法解决了这个问题:

我做错了什么:

   //JSON object.
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("username", register_username);
            jsonObject.put("password", register_password);
            //Entity builder to send value.
            EntityBuilder entityBuilder = EntityBuilder.create();
            entityBuilder.setText(jsonObject.toString());
            httpPost.setEntity(entityBuilder.build());
            //Getting response
            HttpResponse response = httpClient.execute(httpPost);
            String responseBody = EntityUtils.toString(response.getEntity());
            JSONObject responseObject = new JSONObject(responseBody);

我做了什么来修复

  //JSON object.
            JSONObject jsonObject = new JSONObject();
            jsonObject.putOpt("username", register_username);
            jsonObject.putOpt("password", register_password);
            //Entity builder to send value.
            EntityBuilder entityBuilder = EntityBuilder.create();
            entityBuilder.setText(jsonObject.toString());
            httpPost.setEntity(entityBuilder.build());
            //Getting response
            HttpResponse response = httpClient.execute(httpPost);
            String responseBody = EntityUtils.toString(response.getEntity());
            JSONObject responseObject = new JSONObject(responseBody);

不知道为什么,但putOpt方法以某种方式修复了它。如果你知道为什么,请随时回复。