Java 截击发送对象

Java 截击发送对象,java,android,node.js,postgresql,android-volley,Java,Android,Node.js,Postgresql,Android Volley,我有一个让我困惑的疑问,我正在使用android/nodejs/postgreSQL, 我能够向服务器发送http请求并存储信息 但我这样做并没有考虑好的实践,也就是让一个模型与用户关联 因此,基本上我从注册表中获取数据,用表单信息做一个简单的参数,并用键/值信息发送数据 但是现在我想要一个用户模型,并将用户模型trought传递给params.put,然后执行相同的操作 这是一个好的实践吗?还是我应该忘记用户模型,做这样的事情 以下是我目前正在做的事情: public void regist

我有一个让我困惑的疑问,我正在使用android/nodejs/postgreSQL, 我能够向服务器发送http请求并存储信息

但我这样做并没有考虑好的实践,也就是让一个模型与用户关联

因此,基本上我从注册表中获取数据,用表单信息做一个简单的参数,并用键/值信息发送数据

但是现在我想要一个用户模型,并将用户模型trought传递给params.put,然后执行相同的操作

这是一个好的实践吗?还是我应该忘记用户模型,做这样的事情

以下是我目前正在做的事情:

 public void register(View view) {

        //get form data
        final String username = usernameTxt.getText().toString();
        String password = passwordTxt.getText().toString();
        String email = emailTxt.getText().toString();
        Log.d("email",String.valueOf(isValidEmail(email)));

        if (!isValidEmail(email)) {
            emailTxt.setError("Invalid Email");
        }

        //inicialize a map with pair key value
        final Map<String, String> params = new HashMap<String, String>();

        // Add form fields to the map
        params.put("username", username);
        params.put("email", email);
        params.put("password", password);

        /**
         * Efetua um pedido ao servidor
         *
         * @param URl    url do servidor a aceder
         * @param JSONObject objeto json a ser retornado através do access point
         *
         */
        JsonObjectRequest request = new JsonObjectRequest(URL, new JSONObject(params),
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        //TODO verificar o status code da resposta apenas deverá registar login caso seja 200
                        //verifica
                        Log.d("response",response.toString());
                        Intent i = new Intent(Register.this,Login.class);
                        i.putExtra("username",username);
                        startActivity(i);
                        finish();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                String body;
                //get response body and parse with appropriate encoding
                if(error.networkResponse.data!=null) {
                    String statusCode = String.valueOf(error.networkResponse.statusCode);
                    try {
                        body = new String(error.networkResponse.data,"UTF-8");
                        JSONObject jsonObj = new JSONObject(body);
                        Log.d("body",String.valueOf(jsonObj.get("message")));
                        showToast(String.valueOf(jsonObj.get("message")));
                    } catch (UnsupportedEncodingException e) {
                        showToast("You need to connect to the internet!");
                    } catch (JSONException e) {
                        Log.d("json:","problems decoding jsonObj");
                    }
                }
                //do stuff with the body...
            }


        });

        request.setRetryPolicy(new DefaultRetryPolicy(60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

queue.add(request);
}
公共作废登记簿(查看){
//获取表单数据
最终字符串username=usernameTxt.getText().toString();
字符串密码=passwordTxt.getText().toString();
字符串email=emailTxt.getText().toString();
Log.d(“email”,String.valueOf(isValidEmail(email));
如果(!isValidEmail(电子邮件)){
emailTxt.setError(“无效电子邮件”);
}
//使用配对键值对映射进行初始化
final Map params=new HashMap();
//将表单字段添加到映射
参数put(“用户名”,用户名);
参数put(“电子邮件”,电子邮件);
参数put(“密码”,密码);
/**
*埃菲图阿·佩迪多·奥塞维多尔酒店
*
*@param-URl-do-servidor-a-aceder
*@param JSONObject objeto json a ser retronado através do访问点
*
*/
JsonObjectRequest=新的JsonObjectRequest(URL,新的JSONObject(参数),
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//TODO验证状态代码da resposta apenas deveráregistar登录caso seja 200
//验证
Log.d(“response”,response.toString());
意图i=新意图(Register.this、Login.class);
i、 putExtra(“用户名”,用户名);
星触觉(i);
完成();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
弦体;
//获取响应体并使用适当的编码进行解析
if(error.networkResponse.data!=null){
String statusCode=String.valueOf(error.networkResponse.statusCode);
试一试{
body=新字符串(error.networkResponse.data,“UTF-8”);
JSONObject jsonObj=新的JSONObject(主体);
Log.d(“body”,String.valueOf(jsonObj.get(“message”));
showtoos(String.valueOf(jsonObj.get(“message”));
}捕获(不支持的编码异常e){
showToast(“您需要连接到internet!”);
}捕获(JSONException e){
d(“json:,“解码jsonObj时出现问题”);
}
}
//用身体做东西。。。
}
});
request.setRetryPolicy(新的DefaultRetryPolicy(60000,DefaultRetryPolicy.DEFAULT\u MAX\u RETRIES,DefaultRetryPolicy.DEFAULT\u BACKOFF\u MULT));
添加(请求);
}

希望有帮助,请尝试在应用程序中实现

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private static final String REGISTER_URL = "http://foo.com/UserRegistration/volleyRegister.php";

    public static final String KEY_USERNAME = "username";
    public static final String KEY_PASSWORD = "password";
    public static final String KEY_EMAIL = "email";


    private EditText editTextUsername;
    private EditText editTextEmail;
    private EditText editTextPassword;

    private Button buttonRegister;

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

        editTextUsername = (EditText) findViewById(R.id.editTextUsername);
        editTextPassword = (EditText) findViewById(R.id.editTextPassword);
        editTextEmail= (EditText) findViewById(R.id.editTextEmail);

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

        buttonRegister.setOnClickListener(this);
    }

    private void registerUser(){
        final String username = editTextUsername.getText().toString().trim();
        final String password = editTextPassword.getText().toString().trim();
        final String email = editTextEmail.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                    }
                }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put(KEY_USERNAME,username);
                params.put(KEY_PASSWORD,password);
                params.put(KEY_EMAIL, email);
                return params;
            }

        };



           RequestQueue requestQueue = Volley.newRequestQueue(this);
            requestQueue.add(stringRequest);
        }

        @Override
        public void onClick(View v) {
            if(v == buttonRegister){
                registerUser();
            }
        }
    }
public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
专用静态最终字符串寄存器\u URL=”http://foo.com/UserRegistration/volleyRegister.php";
公共静态最终字符串键\u USERNAME=“USERNAME”;
公共静态最终字符串密钥\u PASSWORD=“PASSWORD”;
公共静态最终字符串键\u EMAIL=“EMAIL”;
私有EditText editTextUsername;
私人编辑文本编辑电子邮件;
私人编辑文本编辑密码;
私人按钮注册表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextUsername=(EditText)findViewById(R.id.editTextUsername);
editTextPassword=(EditText)findViewById(R.id.editTextPassword);
editTextEmail=(EditText)findViewById(R.id.editTextEmail);
buttonRegister=(按钮)findViewById(R.id.buttonRegister);
buttonRegister.setOnClickListener(此);
}
私有无效注册器(){
最终字符串用户名=editTextUsername.getText().toString().trim();
最终字符串密码=editTextPassword.getText().toString().trim();
最终字符串email=editTextEmail.getText().toString().trim();
StringRequest StringRequest=新建StringRequest(Request.Method.POST,REGISTER\u URL,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG.show();
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG.show();
}
}){
@凌驾
受保护的映射getParams(){
Map params=新的HashMap();
参数put(KEY_用户名、用户名);
参数put(钥匙密码、密码);
参数put(钥匙、电子邮件、电子邮件);
返回参数;
}
};
RequestQueue RequestQueue=Volley.newRequestQueue(this);
添加(stringRequest);
}
@凌驾
公共void onClick(视图v){