Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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
如何修复android中的截击超时错误_Android_Android Volley - Fatal编程技术网

如何修复android中的截击超时错误

如何修复android中的截击超时错误,android,android-volley,Android,Android Volley,当我试图运行我的代码时,它会给我一个有问题的错误 首先,它给了我一个不允许明文HTTP的错误,然后我尝试通过将这一行添加到清单文件来修复它 android:UseClearTextTraffic=“true” 在此之后,它会给我一个超时错误 我也试着用这些来修复它 但它不起作用 这是我的密码 private void Login() { ID=loginID.getText().toString(); password=loginPassword.getText(

当我试图运行我的代码时,它会给我一个有问题的错误 首先,它给了我一个不允许明文HTTP的错误,然后我尝试通过将这一行添加到清单文件来修复它 android:UseClearTextTraffic=“true” 在此之后,它会给我一个超时错误 我也试着用这些来修复它 但它不起作用 这是我的密码

private void Login() {
        ID=loginID.getText().toString();
        password=loginPassword.getText().toString();

        if (ID.isEmpty()){
            loginID.setError("This field cannot be empty");
            loginPassword.setText("");
        }else if (password.isEmpty()){
            loginPassword.setError("This field cannot be empty");
        }else {
            StringRequest stringRequest=new StringRequest(Request.Method.POST, login_url,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            responseServer.setText("Successfull");

                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    String e=error.toString();
                    responseServer.setText(e);
                    error.printStackTrace();

                }
            })
            {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String,String> params=new HashMap<String, String>();
                    params.put("user_id",ID);
                    params.put("user_password",password);
                    return params;
                }
            };




            MySingleton.getInstance(getApplicationContext()).addToRequestque(stringRequest);
            //AppController.getInstance().addToRequestQueue(stringRequest);
        }

    }
private void Login(){
ID=loginID.getText().toString();
password=loginPassword.getText().toString();
if(ID.isEmpty()){
loginID.setError(“此字段不能为空”);
loginPassword.setText(“”);
}else if(password.isEmpty()){
loginPassword.setError(“此字段不能为空”);
}否则{
StringRequest StringRequest=新的StringRequest(Request.Method.POST、login\u url、,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
responseServer.setText(“成功”);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
字符串e=error.toString();
responseServer.setText(e);
错误。printStackTrace();
}
})
{
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数put(“用户id”,id);
参数put(“用户密码”,密码);
返回参数;
}
};
getInstance(getApplicationContext()).addToRequestque(stringRequest);
//AppController.getInstance().addToRequestQueue(stringRequest);
}
}
这是我的辛格尔顿班 包com.example.schoolmanagementsystem

import android.content.Context;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;

public class MySingleton {

    private static MySingleton mInstance;
    private static RequestQueue requestQueue;
    private static Context context;

    public MySingleton(Context mCx) {
        context=mCx;
        requestQueue=getRequestQueue();
    }

    public RequestQueue getRequestQueue() {

        if(requestQueue==null){
            requestQueue= Volley.newRequestQueue(context.getApplicationContext());
        }
        return requestQueue;
    }

    public static synchronized MySingleton getInstance(Context context){
        if (mInstance==null){
            mInstance=new MySingleton(context);
        }
        return mInstance;
    }

    public <T>void addToRequestque(Request<T> request){
        requestQueue.add(request);
    }
}
导入android.content.Context;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.toolbox.volley;
公共课米辛格尔顿{
私有静态MySingleton-mInstance;
私有静态请求队列;
私有静态语境;
公共MySingleton(上下文mCx){
上下文=mCx;
requestQueue=getRequestQueue();
}
公共请求队列getRequestQueue(){
if(requestQueue==null){
requestQueue=Volley.newRequestQueue(context.getApplicationContext());
}
返回请求队列;
}
公共静态同步MySingleton getInstance(上下文){
if(minInstance==null){
MinInstance=新的MySingleton(上下文);
}
回报率;
}
public void addToRequestque(请求){
添加(请求);
}
}
我正在使用android 3.3.2和android pie运行此

使用重试策略:

stringrequest.setRetryPolicy(new DefaultRetryPolicy(3000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

// Adding the request to queue
BaseController.getInstance().addToRequestQueue(jsObjRequest);
使用重试策略:

stringrequest.setRetryPolicy(new DefaultRetryPolicy(3000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

// Adding the request to queue
BaseController.getInstance().addToRequestQueue(jsObjRequest);

在请求之前添加此代码

int socketTimeout = 30000;
        RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
        stringRequest.setRetryPolicy(policy);
MySingleton.getInstance(getApplicationContext()).addToRequestque(stringRequest);
Android PIE 9.0中的网络问题 照此

在请求之前添加此代码

int socketTimeout = 30000;
        RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
        stringRequest.setRetryPolicy(policy);
MySingleton.getInstance(getApplicationContext()).addToRequestque(stringRequest);
Android PIE 9.0中的网络问题 照此

使用这样的代码,这对我很有用

request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

mQueue.add(request);

使用这样的代码它对我有用

request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

mQueue.add(request);

确保此登录url正常工作,在邮递员或其他不正常工作的客户上进行测试,即使我将其增加到100000,并且我的url正确。我在浏览器中进行测试。请在此处发布日志,确保此登录url正常工作,在邮递员或其他不正常工作的客户上进行测试,即使我将其增加到100000,我的url是正确的,我在浏览器中测试过,请在这里发布日志