首页 > 解决方案 > 使用 Volley 的 Android 注册屏幕

问题描述

我尝试使用 Volley for android(学校项目)实现注册屏幕。到目前为止,我完成了代码,但寄存器不起作用。我尝试调试它并注意到服务器给了我错误 500 一个内部服务器错误。在我的用户界面上,它给了我一个 com.android.volley.server。

我仔细检查了我的网址和代码,但一切似乎都很好。该网址很好,因为使用相同的网址我可以通过邮递员提出请求。和代码我找不到任何错误,因为我是 android 和 volley 的新手。也许有人可以给我一个指针。我的学校给了我一个 google.json 文件,但我不知道我是否可以在这里发布。

这是我提出请求的方法:

@Headers("Content-Type: application/json")
    public void registerData() {
        userName = Username.getText().toString();

        password = Password.getText().toString().trim();
        StringRequest request = new StringRequest(Request.Method.POST, BASE_URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                    try{
                        JSONObject jsonobj = new JSONObject(response);
                        String MsgType = jsonobj.getString("MsgType");
                        if(MsgType.equals(1)){
                            Toast.makeText(registerActivity.this, "Geklappt",Toast.LENGTH_LONG).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(registerActivity.this, "Fail",Toast.LENGTH_LONG).show();

                    }
            }
        },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(registerActivity.this, "Fail: " + error.toString(),Toast.LENGTH_LONG).show();
                        error.printStackTrace();

                    }
                })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<>();
                params.put("Username", userName);
                params.put("Password", password);
                return params;

            }
        };

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(request);

    }

这是我可以得到的 serverResposne (json)

    {
        "MsgType": 1,
        "Info": "Benutzer erfolgreich angelegt",
        "Data": null
    }

Parameters which the server accepts (tested postman)
        {"Username":"Fds", 
        "Password":"Gdg"}

这是所要求的错误

  E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
    SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
D/HwAutofillHelper: recordCurrentInfo:0
    inputType = 131073
D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
W/libEGL: EGLNativeWindowType 0x7a31358250 disconnect failed
V/AudioManager: querySoundEffectsEnabled...
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
E/Volley: [38804] BasicNetwork.performRequest: Unexpected response code 500 for http://palaver.se.paluno.uni-due.de/api/user/register
D/: [ZeroHung]zrhung_send_event: wp = 257, ret = 0
D/: [ZeroHung]zrhung_send_event: wp = 258, ret = 0
D/: [ZeroHung]zrhung_send_event: wp = 260, ret = 0
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'

标签: javaandroidjsonandroid-volley

解决方案


推荐阅读