【问题标题】:Handling different php responses after a javascript http post request在 javascript http post 请求后处理不同的 php 响应
【发布时间】:2012-05-11 13:17:37
【问题描述】:

我正在开发一个 android 应用程序,它使用 PHP/MySQL 将数据从应用程序发送到服务器,以便注册/登录用户。我已经编写了 Javascript 和 PHP 文件来发送和接收 JSON 数据并将其插入 MySQL 数据库。我遇到的问题是如何处理来自 PHP 的不同响应。

示例:

<?php

   //decode json object
   $json = file_get_contents('php://input');
   $obj = json_decode($json);

   //variables
   $user_firstname = $obj->{'user_firstname'};
   $user_lastname = $obj->{'user_lastname'};
   $user_email = $obj->{'user_email'};
   $user_password = $obj->{'user_password'};

   if([variables] != null){
      //check for an existing email in db
      mysql_query("Check if email exists");

      if(email exist){
         //pass a response to java file
         return user_exists;
         die();
      }else{
         //success
         return success;
      }
   }

?>

我只想处理这些不同的返回值,以便在 android 应用程序中与用户进行交互。

【问题讨论】:

    标签: php javascript android http-post


    【解决方案1】:

    我认为您应该为此使用 HTTP 响应代码。例如,您的 php 脚本将在用户成功创建时返回 HTTP 200 - OK,在用户已经存在时返回 HTTP 409 Conflict。这就是 RESTfull API 通常的工作方式。在 Android 上,您必须检查状态代码并决定要做什么。

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httpget = new HttpPost("http://www.google.com/");
    
    HttpResponse response = httpclient.execute(httpget);
    int statusCode = response.getStatusLine().getStatusCode();
    

    【讨论】:

      【解决方案2】:

      您可以通过创建一个关联数组并将其传递给json_encode() 来制作一个 json 响应,这将返回一个您可以回显给 java 客户端的字符串。不要忘记使用header() 函数设置appropriate Content-Type header。适当地设置 HTTP 响应代码也是一个好主意。我正在想象这样的事情:

      $responseArray = array('response' => 'success'); // or 'user_exists'
      $responseJson = json_encode($responseArray);
      header('HTTP/1.1 200 OK'); // or 4xx FAIL_TEXT on failure
      header('Content-Type: application/json');
      echo $responseJson;
      

      然后您必须在 java 客户端上解析此响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-03
        • 2010-12-08
        • 2011-02-23
        • 2020-11-17
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多