java - 从 PHP 向 Android/Java 移动应用程序发送响应?

标签 java php android

目前,我的 Android 应用程序中有一段代码可以获取设备的 IMEI 并将该 IMEI 作为参数发送到托管在 Internet 上的 PHP 脚本。

然后 PHP 脚本采用 IMEI 参数并检查文件以查看文件中是否存在 IMEI,如果存在,我希望能够让我的 Android 应用程序知道 IMEI 存在。所以基本上我只想能够将 True 返回到我的应用程序。

这可能使用 PHP 吗?

到目前为止,这是我的代码:

安卓/Java

//Test HTTP Get for PHP

        public void executeHttpGet() throws Exception {
            BufferedReader in = null;
            try {
                HttpClient client = new DefaultHttpClient();
                HttpGet request = new HttpGet();
                request.setURI(new URI("http://testsite.com/" +
                        "imei_script.php?imei=" + telManager.getDeviceId()
                        ));
                HttpResponse response = client.execute(request);
                in = new BufferedReader
                (new InputStreamReader(response.getEntity().getContent()));
                StringBuffer sb = new StringBuffer("");
                String line = "";
                String NL = System.getProperty("line.separator");
                while ((line = in.readLine()) != null) {
                    sb.append(line + NL);
                }
                in.close();
                String page = sb.toString();
                System.out.println(page);
                } finally {
                if (in != null) {
                    try {
                        in.close();
                        } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

上面将 IMEI 作为参数发送给 PHP 脚本,PHP 脚本成功获取它并成功运行文件检查,但是如果 IMEI 匹配,我需要能够从 PHP 脚本发回肯定响应一个在文件中。

这是 PHP:

<?php
    // to return plain text
    header("Content-Type: plain/text"); 
    $imei = $_GET["imei"];

    $file=fopen("imei.txt","r") or exit("Unable to open file!");

    while(!feof($file))
     {
    if ($imei==chop(fgets($file)))
     echo "True";
     }

    fclose($file);

?>

因此,我希望能够让我的应用程序知道已找到 IMEI,而不是 echo True,这可能吗?如果可以,我应该使用什么来实现它?

最佳答案

这是个好东西!实际上,你快到了。你的 php 不应该改变,你的 java 应该!您只需要检查您的 Java 代码中的响应结果。将您的 java 方法重新声明为

public String executeHttpGet() {

然后,让这个方法返回变量page。

现在您可以在某处创建辅助方法。如果你把它和 executeHttpGet 放在同一个类中,它看起来像这样:

public boolean imeiIsKnown(){
    return executeHttpGet().equals("True");
}

现在您可以调用此方法来查明您的 imei 是否在您的 php 后端已知。

关于java - 从 PHP 向 Android/Java 移动应用程序发送响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624440/

相关文章:

java - 使用java代码查询远程机器上的sql数据库

java - 在android studio中将新记录插入sqlite时出现问题

java - 如何使一个函数只能被某些类访问?

java - 如何在运行时在 Drools DRL 中将事实添加到工作内存并在无状态 session 的执行结果中检索它们?

php - 如何在处理远程文件时连接到本地 mysql 服务器?

PHP - 无法在数据库中存储记录

java - PHP 站点调度 Java 执行?

java - 如何在代码中画出这条路径

android - 如何将有效的 cookie 永久放入 android 中的 volley post 请求中?

android - 如何使用 Robolectric 3.0 从服务器测试 ListView 项目