我正在尝试获取HTTP响应。它在客户端不起作用。试图用"邮差"得到回应,结果成功了。
- 我确信从PHP方面来说一切都很好
- 也许是因为类被弃用了
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方法以某种方式修复了它。如果你知道为什么,请随时回复。