将文本(或字符串)发送到服务器并获得响应

时间:2017-01-24 16:57:49

标签: android login registration

我想制作一个注册/登录应用。我找到了一些例子,但大部分都不适用于我。所以我会一步一步地做所有事情。所以首先登录我要向服务器发送用户名和用户密码。所以这里的一切正常,但正如你所看到的,我没有向服务器发送任何内容。那么,在哪里以及如何将“用户名”和“密码”发送到服务器。

private void userLogin() {
    username = usernameField.getText().toString().trim();
    password = passwordField.getText().toString().trim();

    RequestQueue queue = Volley.newRequestQueue(this);

  // Request a string response from the provided URL.
    StringRequest stringRequest = new StringRequest(Request.Method.GET, LOGIN_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast toast = Toast.makeText(getApplicationContext(), (response), Toast.LENGTH_SHORT);
                    toast.show();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast toast = Toast.makeText(getApplicationContext(), "Anything doesn't work!", Toast.LENGTH_SHORT);
            toast.show();
        }
    });
 // Add the request to the RequestQueue.
    queue.add(stringRequest);
}

3 个答案:

答案 0 :(得分:0)

如果您的请求是GET请求,请尝试以下操作。

private void userLogin() {
    username = usernameField.getText().toString().trim();
    password = passwordField.getText().toString().trim();

    RequestQueue queue = Volley.newRequestQueue(this);

  // Request a string response from the provided URL.
    StringRequest stringRequest = new StringRequest(Request.Method.GET, LOGIN_URL+"?username="+username+"&password="+password, // here you have to add parameters of webservice
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast toast = Toast.makeText(getApplicationContext(), (response), Toast.LENGTH_SHORT);
                    toast.show();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast toast = Toast.makeText(getApplicationContext(), "Anything doesn't work!", Toast.LENGTH_SHORT);
            toast.show();
        }
    });
 // Add the request to the RequestQueue.
    queue.add(stringRequest);
}

答案 1 :(得分:0)

您无法使用GET请求HTTP正文发送数据。

为此,您使用POST请求。

然后,查看其他StringRequest构造函数,查看(method, url, onSuccess, onFailure)个参数超过4的构造函数。

或者......我假设您使用的是JSON REST API,因此需要JSONObjectRequest

答案 2 :(得分:0)

从技术上讲,不禁止在get请求中使用正文。

然而,这是一个非常糟糕的主意。 (更多信息:HTTP GET with request body

这就是许多http API不允许您这样做的原因。