php与android项目的连接

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

我是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 = $_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(…)
方法来比较字符串,因为
=
操作符比较实例(即引用)