Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JsonobjectRequest截击库不工作_Java_Android_Json_Android Volley_Jsonobjectrequest - Fatal编程技术网

Java JsonobjectRequest截击库不工作

Java JsonobjectRequest截击库不工作,java,android,json,android-volley,jsonobjectrequest,Java,Android,Json,Android Volley,Jsonobjectrequest,我对AnoidDroid开发和android测验应用程序还不熟悉。我在nodejs中制作了一个api,希望通过使用volley jsonobjectrequest发出http json post请求。这是我写的代码: package com.gourav.exam_app_android; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bund

我对AnoidDroid开发和android测验应用程序还不熟悉。我在nodejs中制作了一个api,希望通过使用volley jsonobjectrequest发出http json post请求。这是我写的代码:

package com.gourav.exam_app_android;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.NetworkError;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.RetryPolicy;
import com.android.volley.ServerError;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.HttpHeaderParser;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

public class register2 extends AppCompatActivity {
EditText Email;
RequestQueue requestQueue ;
    UtilService utilservice = new UtilService();
EditText UserName;
EditText Password;
Button Register;
TextView Already_registered;
ProgressBar loading;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register2);
        Password = findViewById(R.id.password_register);
        UserName = findViewById(R.id.username_register);
        Email = findViewById(R.id.email_register);
        Register = findViewById(R.id.register);
        Already_registered = findViewById(R.id.textView);
        loading = findViewById(R.id.loading_register);
//        Bundle b1 = getIntent().getExtras();
//        String User_type =  b1.getString("User_type");
        Bundle b1 = getIntent().getExtras();
        String User_type = b1.getString("User_type");
        Toast.makeText(register2.this, User_type, Toast.LENGTH_SHORT).show();
        Intent Registered_to_login = new Intent(register2.this ,login.class);


        Register.setOnClickListener(new View.OnClickListener() {


                @Override
                public void onClick(View view) {
                    loading.setVisibility(View.VISIBLE);
                    utilservice.hideKeyboard(view,register2.this);
                    if(isvalid(view)){
                        registerUser(view);
                    }
                 }
            private void registerUser (View view){
                String username = UserName.getText().toString();
                String password = Password.getText().toString();
                String email = Email.getText().toString();
                Toast.makeText(register2.this, "Opening Home Page", Toast.LENGTH_SHORT).show();
                HashMap<String, String> parms = new HashMap<String, String>();
                parms.put("userName", username);
                parms.put("email",email );
                parms.put("password", password);
                parms.put("Usertype", User_type);



                String apiKey = "https://gounikquizapp.herokuapp.com/api/auth/register";


                JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
                        apiKey, new JSONObject(parms), new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            if (response.getBoolean("success")==true) {
                                String token = response.getString("token");

                                Toast.makeText(register2.this, token, Toast.LENGTH_SHORT).show();
                                Intent register2_MainActivtiy = new Intent(register2.this, MainActivity.class);
                                startActivity(register2_MainActivtiy);
                            }
                            loading.setVisibility(View.GONE);
                        } catch (JSONException e) {
                            e.printStackTrace();
                            loading.setVisibility(View.GONE);
                        }
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        NetworkResponse response = error.networkResponse;
                        if (error instanceof ServerError && response != null) {
                            try {
                                String res = new String(response.data, HttpHeaderParser.parseCharset(response.headers, "utf-8"));

                                JSONObject obj = new JSONObject(res);
                                Toast.makeText(register2.this, obj.getString("msg"), Toast.LENGTH_SHORT).show();
                                loading.setVisibility(View.GONE);
                            } catch (JSONException | UnsupportedEncodingException je) {
                                je.printStackTrace();
                                loading.setVisibility(View.GONE);
                            }
                        }
                    }
                }) {
                    @Override
                    public Map<String, String> getHeaders() throws AuthFailureError {
                        HashMap<String, String> headers = new HashMap<>();
                        headers.put("Content-Type", "application/json");
                        return parms;
                    }
                };

                // set retry policy
                int socketTime = 3000;
                RetryPolicy policy = new DefaultRetryPolicy(socketTime,
                        DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
                jsonObjectRequest.setRetryPolicy(policy);

                // request add
                 requestQueue = Volley.newRequestQueue(register2.this);
                requestQueue.add(jsonObjectRequest);
            }
                                    });
        Already_registered.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(Registered_to_login);
            }
        });


     }
    public boolean isvalid(View view){
        boolean isvalid;


        if(TextUtils.isEmpty(UserName.getText())){
            utilservice.showSnackBar(view,"pls enter username");
            isvalid = false;
            if(TextUtils.isEmpty(Email.getText())){
                utilservice.showSnackBar(view,"pls enter email");
                isvalid = false;
                if(TextUtils.isEmpty(Password.getText())){
                    utilservice.showSnackBar(view,"pls enter password");
                    isvalid = false;
                }
                else{
                    isvalid = true;
                }
            }
            else{
                isvalid = true;
            }
        }
        else{
            isvalid = true;
        }


            return isvalid;
    };

package com.gourav.exam\u app\u android;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.text.TextUtils;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ProgressBar;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.AuthFailureError;
导入com.android.volley.DefaultRetryPolicy;
导入com.android.volley.NetworkError;
导入com.android.volley.NetworkResponse;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.RetryPolicy;
导入com.android.volley.ServerError;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.HttpHeaderParser;
导入com.android.volley.toolbox.JsonObjectRequest;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.UnsupportedEncodingException;
导入java.util.HashMap;
导入java.util.Map;
公共类注册表2扩展了AppCompatActivity{
编辑文本电子邮件;
请求队列请求队列;
UtilService UtilService=新的UtilService();
编辑文本用户名;
编辑文本密码;
按钮寄存器;
TextView已注册;
钢筋加载;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register2);
Password=findviewbyd(R.id.Password\u寄存器);
用户名=findViewById(R.id.UserName\u寄存器);
Email=findviewbyd(R.id.Email\u注册表);
寄存器=findViewById(R.id.Register);
已注册=findViewById(R.id.textView);
加载=findviewbyd(R.id.loading\u寄存器);
//Bundle b1=getIntent().getExtras();
//字符串User_type=b1.getString(“User_type”);
Bundle b1=getIntent().getExtras();
字符串User_type=b1.getString(“User_type”);
Toast.makeText(register2.this,User_type,Toast.LENGTH_SHORT).show();
Intent Registered\u to\u login=新Intent(register2.this,login.class);
Register.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
加载.setVisibility(视图.VISIBLE);
hideKeyboard(视图、注册表2.this);
if(isvalid(视图)){
注册服务器(视图);
}
}
专用无效注册表服务器(视图){
字符串username=username.getText().toString();
字符串密码=password.getText().toString();
字符串email=email.getText().toString();
Toast.makeText(register2.this,“打开主页”,Toast.LENGTH_SHORT.show();
HashMap parms=新的HashMap();
参数put(“用户名”,用户名);
parms.put(“电子邮件”,电子邮件);
密码输入(“密码”,密码);
参数put(“用户类型”,用户类型);
字符串apiKey=”https://gounikquizapp.herokuapp.com/api/auth/register";
JsonObjectRequest JsonObjectRequest=新的JsonObjectRequest(Request.Method.POST,
apiKey,新的JSONObject(parms),新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
if(response.getBoolean(“success”)==true){
String token=response.getString(“token”);
Toast.makeText(register2.this,Toast.LENGTH_SHORT.show();
Intent register2\u mainActivityy=新的Intent(register2.this,MainActivity.class);
启动活动(登记2_main activity);
}
loading.setVisibility(View.GONE);
}捕获(JSONException e){
e、 printStackTrace();
loading.setVisibility(View.GONE);
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
NetworkResponse=错误。NetworkResponse;
if(error instanceof ServerError&&response!=null){
试一试{
String res=新字符串(response.data,HttpHeaderParser.parseCharset(response.headers,“utf-8”);
JSONObject obj=新的JSONObject(res);
Toast.makeText(register2.this,obj.getString(“msg”),Toast.LENGTH_SHORT.show();
loading.setVisibility(View.GONE);
}捕获(JSONException |不支持编码异常je){
je.printStackTrace();
loading.setVisibility(View.GONE);
}
}
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“内容类型”、“应用程序/json”);
返回参数;
}
};
//设置重试策略
int socketTime=3000;
RetryPolicy=new Defa