这会在通过所有要求后发送注册帐户的用户名和密码。必须包含 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);
}
}
});
}
}
这是错误的屏幕截图,我相信这是一种语法,但我根本没有看到它。我觉得不错。
错误图片
最佳答案
试试这个
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/