有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何修复尝试将用户签名到服务器主机时出现的“字符串无法转换为json对象”错误?

我正在尝试将一些用户数据(其注册安卓页面)发送到我的服务器主机,但在尝试从服务器端获取json对象时出错,因此如何解决此问题

更新::我正在使用byethost服务,我知道Cookie中有一些东西。那么,我如何使用volley库来解决这个问题呢

我的RegisterActivity类中有一个名为onResponse()的方法,它是问题的起点。在这个方法中,我写了这行代码,它总是抛出关于不将字符串转换为json对象的异常,我认为这与我的java代码无关,它不能将字符串转换为json的原因是它不是一个有效的json对象。但我不知道为什么它是无效的

这是我的登记簿。php文件 https://www.安卓tutorialpoint.com/wp-content/uploads/2016/09/register.txt https://www.安卓tutorialpoint.com/wp-content/uploads/2016/09/update_user_info.txt https://www.安卓tutorialpoint.com/wp-content/uploads/2016/09/安卓_login_connect.txt https://www.安卓tutorialpoint.com/wp-content/uploads/2016/09/安卓_login_config.txt

顺便说一句,我刚刚学习了一个教程,我对php不太了解

下面是RegisterActivity类中触发异常的方法

            @Override
            public void onResponse(String response) {

            Toast.makeText(RegisterActivity.this, response, 
            Toast.LENGTH_LONG).show();

            Log.d(TAG, "Register Response: " + response.toString());
            hideDialog();

            try {
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");

                if (!error) {
                    String user = 
                    jObj.getJSONObject("user").getString("name");
                    Toast.makeText(getApplicationContext(), "Hi " + user + 
                     ", You are successfully Added!", 
                    Toast.LENGTH_SHORT).show();

                    // Launch login activity
                    Intent intent = new Intent(
                            RegisterActivity.this,
                            LoginActivity.class);
                    startActivity(intent);
                    finish();
                } else {

                    String errorMsg = jObj.getString("error_msg");
                    Toast.makeText(getApplicationContext(),
                            errorMsg, Toast.LENGTH_LONG).show();
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

我希望有一个有效的json对象将用户数据传递到我的服务器,但我已经有了一些无效的json,它会引发异常


共 (1) 个答案

  1. # 1 楼答案

    好吧,如果有人遵循了注册和登录页面的教程,但它在这里不起作用,有一些原因。 1) 您的php文件存在一个问题,主要是这个问题。 2) 如果将字符串转换为json对象时出现问题,请打印该字符串并查看其是否为有效的json。 3) 如果这些东西都很好,那么您可能应该检查数据库,看看是否所有东西都适合php和用户数据等等

    我的问题不是这两个,因为我的服务器主机与cookies(byethost)有关,您应该添加一些头来解决问题。这是一个很好的链接 How to set custom header in Volley Request 但我只是通过使用另一台服务器主机(000host)解决了我的问题,它工作得很好。顺便说一下,如果您试图使用wamp,但它也不起作用,请使用免费主机。三天来我一直被困在这件事上。祝你好运