在php Web服务中解析json请求
在网上搜索了很多之后,我没有得到任何合适的解决方案。 我将JSON数据从android应用程序发送到用php开发的Web服务 当我通过在php Web服务中解析json请求,php,android,json,web-services,Php,Android,Json,Web Services,在网上搜索了很多之后,我没有得到任何合适的解决方案。 我将JSON数据从android应用程序发送到用php开发的Web服务 当我通过高级Rest-Cient应用程序测试Web服务时,我得到了正确的响应,但是当我调用api时,它给了我null响应 以下是我将数据发送到服务器的android代码: JSONObject obj = new JSONObject(); try { obj.put("name", email_string);
高级Rest-Cient应用程序测试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);
?>
如果它与高级REST客户端应用程序一起工作,而不是与Android应用程序一起工作,那是因为您没有正确解析属性
我得说是这两行的东西
$myarray2 = split("=", $myarray[0]);
$myarray3 = split("=", $myarray[1]);
您得到的是“空响应”,因为查询的属性编码错误如果它与高级REST客户端应用程序一起工作,而不是与Android应用程序一起工作,那是因为您没有正确解析属性
我得说是这两行的东西
$myarray2 = split("=", $myarray[0]);
$myarray3 = split("=", $myarray[1]);
您得到的是“空响应”,因为查询的属性编码错误您的控件是否达到$qry=“SELECT”?$result=$conn->query($qry);此行的输出是什么?您的控件是否达到$qry=“SELECT”$结果=$conn->query($qry);这条生产线的产量是多少?