php与android项目的连接
我是android开发的初学者。我想将一个php文件连接到android应用程序。我的php代码是php与android项目的连接,php,android,eclipse,Php,Android,Eclipse,我是android开发的初学者。我想将一个php文件连接到android应用程序。我的php代码是 <?php $con = mysqli_connect("localhost", "root", "", "invoice_db"); if(mysqli_connect_errno($con)) { echo "Failed to connect"; } $response["sucess"]=0; $invoiceid
<?php
$con = mysqli_connect("localhost", "root", "", "invoice_db");
if(mysqli_connect_errno($con)) {
echo "Failed to connect";
}
$response["sucess"]=0;
$invoiceid = $_POST['invc'];
$response = array();
$sql = "SELECT sl_no from invoice_table where invoice_id='$invoiceid'";
$result = mysqli_query($con,$sql);
if(!empty($result)) {
$row = mysqli_fetch_array($result);
$data = $row[0];
$response["sucess"] = 1;
}
mysqli_close($con);
?>
我的JSONParser页面包含
if (method == "POST") {
// request method is POST
// defaultHttpClient
System.out.println("Inside json parser POST condition");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
System.out.println("Inside json parser POST condition" + params);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
Log.d("From httpentity", httpEntity.toString());
System.out.println("ppppppppppppphhhhhhhhhhhhhhhhhhhhppppppppppp");
is = httpEntity.getContent();
}
现在我想检查参数是否被传递到php页面。因此,我想控制台/记录cat
$invoiceid
。如何在Eclipse Ide中实现这一点?如果希望在PHP代码中打印变量,可以执行echo$variable
。但是请注意,PHP代码将在服务器上执行,而不是在android设备上执行。此外,PHP代码容易受到sql注入攻击如果要在PHP代码中打印变量,可以执行echo$variable
。但是请注意,PHP代码将在服务器上执行,而不是在android设备上执行。此外,您的PHP代码容易受到sql注入攻击您可以在PHP文件中使用JSON编码方法来获得这样的正确JSON响应
$response = array (
'invoiceid' => $verify_code,
);
print json_encode($response);
它将以如下格式向应用程序返回JSON字符串
{"invoiceid":"null"}
你可以这样解码和记录
InputStreamReader isw = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isw);
String line = "";
StringBuffer buffer = new StringBuffer();
while ((line = br.readLine()) != null){
buffer.append(line);
}
String finalresult = buffer.toString();
JSONObject myobject = new JSONObject(finalresult);
String flag= myobject.getString("invoiceid");
log.e("mylog",flag)
因此,它将在您的logcat文件中可见。您可以在php文件中使用JSON编码方法来获得这样一个正确的JSON响应
$response = array (
'invoiceid' => $verify_code,
);
print json_encode($response);
它将以如下格式向应用程序返回JSON字符串
{"invoiceid":"null"}
你可以这样解码和记录
InputStreamReader isw = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isw);
String line = "";
StringBuffer buffer = new StringBuffer();
while ((line = br.readLine()) != null){
buffer.append(line);
}
String finalresult = buffer.toString();
JSONObject myobject = new JSONObject(finalresult);
String flag= myobject.getString("invoiceid");
log.e("mylog",flag)
因此它将在您的logcat文件中可见。在eclipse控制台/log cat中显示该变量的任何其他可能性。我不想在浏览器中显示ConsolePP是在web服务器上执行的,它与Android无关,因此您无法在logcat上打印任何内容。您可以将调用的结果打印到LogCat,即PHP代码返回的字符串/Json/HTML/任何内容。@Rose:如果您在浏览器中访问PHP的URL,只有在浏览器中才会显示结果。如果通过应用程序运行它,则必须使用
Log
打印它。如前所述,例如@user2340612必须将结果转换为字符串。这里的要点是,如果您需要检查输出/结果,您必须在php中使用echo$something
,因为这是一个POST请求,您不能简单地访问网页,但您需要使用cURL或类似的方法。然而,@IceMAN提出的想法是在eclipse控制台/log cat中显示变量的有效的其他可能性。我不想在浏览器中显示ConsolePP是在web服务器上执行的,它与Android无关,因此您无法在logcat上打印任何内容。您可以将调用的结果打印到LogCat,即PHP代码返回的字符串/Json/HTML/任何内容。@Rose:如果您在浏览器中访问PHP的URL,只有在浏览器中才会显示结果。如果通过应用程序运行它,则必须使用Log
打印它。如前所述,例如@user2340612必须将结果转换为字符串。这里的要点是,如果您需要检查输出/结果,您必须在php中使用echo$something
,因为这是一个POST请求,您不能简单地访问网页,但您需要使用cURL或类似的方法。然而,@IceMAN提出的想法是有效的,你可能会改变的另一件事是method==“POST”
到method.equals(“POST”)
。没错,在Java中,你必须使用.equals(…)
方法来比较字符串,因为=
操作符比较实例(即引用)另一件您可能会更改的事情是method==“POST”
到method.equals(“POST”)
。这是事实,在Java中,您必须使用.equals(…)
方法来比较字符串,因为=
操作符比较实例(即引用)