Volley GET 请求发送空参数

尼科·本特利

我正在制作一个使用 Volley 调用 PHP 脚本以访问 MySQL 服务器的 Android 应用程序。但是,我通过 GET 发送的参数是空的。当我使用 Postman 测试通话时,它会起作用。这是安卓代码:

    RequestQueue queue = Volley.newRequestQueue(this);
    String url = "http://lastboxusa.com/php/PLogin.php";
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("username", username);
    params.put("password", password);
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, new JSONObject(params), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                VolleyLog.d("Response = " + response.toString());
                String result = response.get("Result").toString();
                VolleyLog.d("Result = " + result);
                if (result.equals("Disallow")) {
                    Toast.makeText(context, "Invalid Username and/or Password.", Toast.LENGTH_LONG).show();
                } else if (result.equals("Customer")) {
                    Toast.makeText(context, "Customer Logged In", Toast.LENGTH_LONG).show();
                    // Customer Login
                } else if (result.equals ("Rep")) {
                    Toast.makeText(context, "Rep Logged In", Toast.LENGTH_LONG).show();
                    // Rep Login
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            try {
                VolleyLog.e("Status Code: ", String.valueOf(error.networkResponse.statusCode));
                VolleyLog.e("Error: ", new String(error.networkResponse.data, "UTF-8"));
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }) {

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json; charset=utf-8");
            return headers;
        }
    };
    queue.add(request);

这是PHP:

header('Content-Type: application/json; charset=utf-8');

$con = mysqli_connect('domain', 'username', 'password', 'db') or die("Connection Failed");

$username = $_GET['username'];
$password = $_GET['password'];

$result = mysqli_query($con, "SELECT * FROM  `Users` WHERE  `Username` =  '$username' AND  `Password` =  '$password'");

if ($result && $result->num_rows > 0) {
    $ans = $result->fetch_assoc()['UserType'];
    $response['Result'] = $ans;
    $response['Username'] = $username;
    $response['Password'] = $password;
} else {
    $response['Result'] = "Disallow";
    $response['Numrows'] = $result->num_rows;
    $response['Username'] = $username;
    $response['Password'] = $password;
}

echo json_encode($response);

mysqli_close($con);

预期输出(当提供 username=testrep, password=test 时 Postman 的实际输出):

{"Result": Rep, "Username": "testrep", "Password", "test"}

提供相同值时代码的实际输出:

{"Result": "Disallow", "Numrows": 0, "Username": null, "Password": null}
xiandanin

如果使用 Volley get 请求发送,则只能在 url 后面拼接参数。

String url="http://lastboxusa.com/php/PLogin.php?username"+username+"&password"+password;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Volley JsonObjectRequest在GET请求中发送标头

来自分类Dev

在Android中使用Volley发送HTTP GET请求时出错

来自分类Dev

使用 Volley 在 POST 请求中发送参数

来自分类Dev

Android Volley:服务器上接收到带有POST请求发送的String参数的空值

来自分类Dev

android Volley Delete方法,为什么会发送空参数

来自分类Dev

Volley将空参数发送到服务器

来自分类Dev

如何在 Volley 的 GET 请求中传递参数并添加授权标头

来自分类Dev

当在Volley中实现缓存时,防止Volley在POST请求方法上发送缓存的参数

来自分类Dev

Volley的JSON GET请求上的java.lang.NullPointerException

来自分类Dev

android volley请求中的get和post方法

来自分类Dev

如何使用带有指定参数的Android Volley GET方法?

来自分类Dev

Volley-使用JSONArrayRequest发送POST请求

来自分类Dev

防止Volley同时发送相同的请求

来自分类Dev

Volley - CancelAll() 不会停止发送请求

来自分类Dev

requestQueue volley doenst 工作(发送多个请求)

来自分类Dev

Volley JSONArrayRequest-无法正确发送参数?

来自分类Dev

Volley StringRequest发送参数POST方法

来自分类Dev

在Volley JSONArray请求中传递参数

来自分类Dev

数组作为Volley POST请求参数

来自分类Dev

Android monits Volley请求

来自分类Dev

Android Volley 发布请求

来自分类Dev

Android Volley POST请求:在服务器端获取GET请求方法(php)

来自分类Dev

使用用户名和密码的Android Volley GET请求失败

来自分类Dev

阻止Volley发送缓存头

来自分类Dev

通过Volley请求发送身份验证信息

来自分类Dev

Volley JsonObjectRequest在同一请求中发送3个JSONObject?

来自分类Dev

如何使用Volley在Android中发送多部分请求

来自分类Dev

捕获在Servlet内部使用Android Volley发送的jsonobject请求

来自分类Dev

Android-取消Volley请求

Related 相关文章

  1. 1

    Volley JsonObjectRequest在GET请求中发送标头

  2. 2

    在Android中使用Volley发送HTTP GET请求时出错

  3. 3

    使用 Volley 在 POST 请求中发送参数

  4. 4

    Android Volley:服务器上接收到带有POST请求发送的String参数的空值

  5. 5

    android Volley Delete方法,为什么会发送空参数

  6. 6

    Volley将空参数发送到服务器

  7. 7

    如何在 Volley 的 GET 请求中传递参数并添加授权标头

  8. 8

    当在Volley中实现缓存时,防止Volley在POST请求方法上发送缓存的参数

  9. 9

    Volley的JSON GET请求上的java.lang.NullPointerException

  10. 10

    android volley请求中的get和post方法

  11. 11

    如何使用带有指定参数的Android Volley GET方法?

  12. 12

    Volley-使用JSONArrayRequest发送POST请求

  13. 13

    防止Volley同时发送相同的请求

  14. 14

    Volley - CancelAll() 不会停止发送请求

  15. 15

    requestQueue volley doenst 工作(发送多个请求)

  16. 16

    Volley JSONArrayRequest-无法正确发送参数?

  17. 17

    Volley StringRequest发送参数POST方法

  18. 18

    在Volley JSONArray请求中传递参数

  19. 19

    数组作为Volley POST请求参数

  20. 20

    Android monits Volley请求

  21. 21

    Android Volley 发布请求

  22. 22

    Android Volley POST请求:在服务器端获取GET请求方法(php)

  23. 23

    使用用户名和密码的Android Volley GET请求失败

  24. 24

    阻止Volley发送缓存头

  25. 25

    通过Volley请求发送身份验证信息

  26. 26

    Volley JsonObjectRequest在同一请求中发送3个JSONObject?

  27. 27

    如何使用Volley在Android中发送多部分请求

  28. 28

    捕获在Servlet内部使用Android Volley发送的jsonobject请求

  29. 29

    Android-取消Volley请求

热门标签

归档