android - 将用户名和密码发送到本地主机不起作用?

标签 android android-volley

这会在通过所有要求后发送注册帐户的用户名和密码。必须包含 1 个小写字母、1 个大写字母、1 个数字和 1 个特殊字符,但由于某种原因,getParams() 方法不起作用。它表示无效结果,但这是 volley 中给出的确切代码。怎么了?

package com.example.eid.authenticator;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.HashMap;
import java.util.Map;
import com.android.volley.Response;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.android.volley.VolleyError;
import java.lang.Object;


public class RegisterActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        final TextView mTextView = (TextView) findViewById(R.id.text);
        // Request a string response from the provided URL.




        Button registerButton = findViewById(R.id.registerButton);


        registerButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                EditText username = (EditText)findViewById(R.id.usernameField);
                EditText password = (EditText)findViewById(R.id.passwordField);
                final String sUsername = username.getText().toString();
                final String sPassword = password.getText().toString();
                final RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
                final String url = "10.0.2.2";
                if(sUsername.matches("")){
                    Toast.makeText(getApplicationContext(),"Please enter a username",Toast.LENGTH_SHORT).show();
                }else if(sPassword.matches("")){
                    Toast.makeText(getApplicationContext(),"Please enter a password",Toast.LENGTH_SHORT).show();

                }else if(sPassword.matches("^([^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$")){
                    Toast.makeText(getApplicationContext(),"Password must contain letters and numbers and uppercase",Toast.LENGTH_SHORT).show();


                }
            else if(sPassword.length() < 6){
                    Toast.makeText(getApplicationContext(),"Password must be greater than 6 characters",Toast.LENGTH_SHORT).show();


                }

                // TODO Auto-generated method stub
                else {

                    final StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                    // Display the first 500 characters of the response string.
                                    mTextView.setText("Response is: "+ response.substring(0,500));
                                }
                            }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            mTextView.setText("That didn't work!");
                        }
                    })

                    @Override
                    protected Map<String,String> getParams(){
                        Map<String,String> params = new HashMap<String, String>();
                        params.put("user",sUsername);
                        params.put("pass",sPassword);


                        return params;
                    }




                    Intent i = new Intent(RegisterActivity.this, waitingPage.class);
                    startActivity(i);
                }
            }
        });
    }
}

这是错误的屏幕截图,我相信这是一种语法,但我根本没有看到它。我觉得不错。

错误图片

enter image description here

最佳答案

试试这个

You forget { after }) before the getParams() and afetr the getParams() ;

final StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                // Display the first 500 characters of the response string.
                                mTextView.setText("Response is: "+ response.substring(0,500));
                            }
                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        mTextView.setText("That didn't work!");
                    }
                }) {

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("name", "Androidhive");
                params.put("email", "abc@androidhive.info");
                params.put("password", "password123");

                return params;
            }

        };

URL 应该是 http://10.0.2.2/folder_name/login.php

关于android - 将用户名和密码发送到本地主机不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745295/

相关文章:

java - 如果由于解析异常而被后退按钮破坏,Android 应用程序会崩溃

java - XML 和 Java 之间的常量值

android - 将更多记录(近 1,00,000 条记录)插入数据库时​​出现内存不足错误

java - Gson/Volley Android 从响应中获取消息而不是数据

android - Volley 内存不足错误,奇怪的分配尝试

Android Hybrid App + Volley、Cookies 和 WebView

android - 展开 View 下方的布局不可见?

android - 如何制作此 Android 气泡 ListView 列表项以便背景随文本大小调整

android - 如何在 Volley 中使用 Google Cloud Endpoints?

android - 使用 volley 注册时出现 com.android.volley.VolleyError : java. lang.NullPointerException 错误