首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中使用json对象响应http get请求

在php中使用json对象响应http get请求
EN

Stack Overflow用户
提问于 2015-02-07 07:00:12
回答 3查看 2.9K关注 0票数 1

我有一个PHP页面(test.php),它必须响应从android应用程序发送的HTTP请求。响应必须通过json对象。我该怎么做?

以供参考:-是一个php代码,用于检查登录表单中的登录详细信息。http请求将是从包含登录表单的android应用程序发送的用户名和密码。此页面的响应将是成功或失败消息。

代码语言:javascript
复制
<?php
        session_start();
         require('connect.php');
        if (isset($_GET['username']) and isset($_GET['password']))
        {
            $username = $_GET['username'];
            $password = $_GET['password'];
            $query = "SELECT * FROM `staff_reg` WHERE username='$username' and password='$password'";

            $result = mysql_query($query) or die(mysql_error());
            $count = mysql_num_rows($result);
            if ($count == 1)
            {
                $_SESSION['username'] = $username;
            }
            else
            {
                echo "Invalid Username or Password";
            }
        }
        if (!isset($_SESSION['username']))
        {
            echo "Session Expired";
            echo "<br><a href='staff_login.php'>Click here</a> to login again"; 
            echo "<br><a href='index.html'>Click here</a> to go back to the homepage"; 
            $username = $_SESSION['username'];
        }
        else{
            $username = $_SESSION['username'];
            echo "<p>Welcome ".$username."<br>";
            echo "This is the Staff Portal<br>";
            echo "<a href='logout.php'>Logout</a></p>"; 
    ?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-07 07:11:23

我想这可能对你有帮助..。

代码语言:javascript
复制
<?php
        session_start();
         require('connect.php');
        //create an variable $response
        //Use GET instead of POST since you are sending data in GET method
        if (isset($_GET['username']) and isset($_GET['password']))
        {
            $username = $_GET['username'];
            $password = $_GET['password'];
            $query = "SELECT * FROM `staff_reg` WHERE username='$username' and password='$password'";

            $result = mysql_query($query) or die(mysql_error());
            $count = mysql_num_rows($result);
            if ($count == 1)
            {
                $response="Success";
            }
            else
            {
                $response="Failure";
            }
        //now echo it as an json object
            echo json_encode($response);
        }
票数 1
EN

Stack Overflow用户

发布于 2015-02-07 07:29:06

您可以将响应作为json编码的数据发送,例如,假设您的响应数据是

代码语言:javascript
复制
$user = array('firstName' =>'abc', 'lastName' =>'xyz'); 
$response = json_encode($user);
票数 1
EN

Stack Overflow用户

发布于 2015-02-07 07:51:55

如果这是您提到的android应用程序的api,那么您不能在其中使用会话。您必须找到另一种方法来授权用户。

您可以用json格式对字符串和数组进行编码,但最好创建一个对象并对其进行编码。这样,您就可以通过api中指定的名称访问这些值。

例如:

代码语言:javascript
复制
$obj->status = "error";

代码语言:javascript
复制
$obj->status = "success";

最后:

代码语言:javascript
复制
echo json_encode($obj);

您可以使用以下格式在应用程序中访问它:

代码语言:javascript
复制
   //String response = httpResponse
   JsonObject object = new JsonObject(response);
   String status = object.getString("status");
   if(status.equals("error")){
        //handle the error
   } else {
        //login was successful and you can show the user the proper activity
   }

至于将请求发送到api,我建议您使用库AQuery

库可以简化您处理http请求的工作。它的工作如下:

代码语言:javascript
复制
    AQuery aq = new AQuery(context);
    aq.ajax(url, JsonObject.class, new AjaxCallback<JsonObject>(){
    @Override
    public void callback(String url, JSONObject object, AjaxStatus status) {
        //object is the json object sent from the server
    }
    });

我希望这对你有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28379531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档