在互联网上搜索了很多之后,我没有找到任何合适的解决方案。我正在将JSON数据从android应用程序发送到php中开发的Web服务。
当我通过Advanced Rest Cient Appication
测试Web服务时,我得到了正确的响应,但当我调用api时,它会给我null
响应。
这是我将数据发送到服务器的android代码:
JSONObject obj = new JSONObject();
try {
obj.put("name", email_string);
obj.put("email", password_string);
} catch (JSONException e) {
e.printStackTrace();
}
try {
HttpPost httppost = new HttpPost(url.toString());
httppost.setHeader("Content-type", "application/json");
StringEntity se = new StringEntity(obj.toString());
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httppost.setEntity(se);
HttpResponse response = httpclient.execute(httppost);
Content = EntityUtils.toString(response.getEntity());
Log.e("TAG", "response: " + response);
}
catch(Exception e)
{
//Toast.makeText(getApplicationContext(), "Something went wrong please try again later", Toast.LENGTH_LONG).show();
}
下面是我的php Web服务代码:
<?php
error_reporting(1);
$conn = new mysqli('localhost', 'xxxxx', 'xxxx', 'xxxx');
// Get data
$data = json_decode("php://input",true);
print_r( $data);
$handle = fopen("php://input", "rb");
$raw_post_data = '';
while (!feof($handle)) {
$raw_post_data .= fread($handle, 8192);
}
fclose($handle);
$data = json_encode($raw_post_data);
$data = json_decode( $data);
$data = (array) $data;
$myarray = split("&", $data[0]);
$myarray2 = split("=", $myarray[0]);
$myarray3 = split("=", $myarray[1]);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$qry = "SELECT emp_id, name, domain_name FROM Itl_login WHERE domain_name = '".urldecode($myarray2[1])."' and password='".urldecode($myarray3[1])."'";
//echo $qry;
$result = $conn->query($qry);
while($row = $result->fetch_assoc()) {
$json = array("status" => 1, "name" => $row["name"], "domain_name"=> $row["domain_name"], "emp_ID" => $row["emp_id"]);
}
/* Output header */
header('Content-type: application/json');
echo json_encode($json);
?>
请告诉我我在这里做错了什么。任何帮助都会得到通知。提前谢谢。
如果它适用于Advanced REST Client应用程序,而不适用于您的Android应用程序,那是因为您没有正确解析属性。
我想这是两条线的问题
$myarray2 = split("=", $myarray[0]);
$myarray3 = split("=", $myarray[1]);
由于属性