Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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截击SSL错误_Android_Ssl_Https_Android Volley - Fatal编程技术网

Android截击SSL错误

Android截击SSL错误,android,ssl,https,android-volley,Android,Ssl,Https,Android Volley,am在同一台服务器上使用两个嵌套的截击请求,但第二个请求返回时出错: StringRequest strReqUpdate = new StringRequest(Request.Method.GET, versionCheckURL, new Response.Listener<String>() { @Override public void onResponse(String response) { ini

am在同一台服务器上使用两个嵌套的截击请求,但第二个请求返回时出错:

        StringRequest strReqUpdate = new StringRequest(Request.Method.GET, versionCheckURL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            initJson = response;
            try {
                JSONObject root = new JSONObject(initJson);
                final long version = root.getLong("latest_update");                  
                long localVersion = prefs.getLong("version", 0);
                boolean flag = false;

                if(version != localVersion){                    
                        flag = true;
                }

                if(flag == true){                     
                    StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {                               
                            SharedPreferences.Editor editor = prefs.edit();
                            editor.putString("json", response);                                                                                              
                            editor.putLong("version", version);
                            editor.commit();

                            parseData(response); 
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            String cachedResponse = prefs.getString("json", "");

                            if (!cachedResponse.equals("")) {
                                parseData(cachedResponse);
                            } else {
                                Toast.makeText(MainActivity.this, getString(R.string.network_error), Toast.LENGTH_LONG).show();
                                finish();
                            }
                        }
                    }) {
                        @Override
                        public Map<String, String> getHeaders() throws AuthFailureError {
                            HashMap<String, String> headers = new HashMap<String, String>();
                            headers.put("key", getResources().getString(R.string.api_key));
                            return headers;
                        }
                    };
                    strReq.setShouldCache(false);
                    AppController.getInstance().addToRequestQueue(strReq, Constants.TAG_STRING_REQ);
                }
                else{                       
                    String cachedResponse = prefs.getString("json", "");
                    if (!cachedResponse.equals("")) {
                        parseData(cachedResponse);
                    } else {
                        Toast.makeText(MainActivity.this, getString(R.string.network_error), Toast.LENGTH_LONG).show();
                        finish();
                    }
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            String cachedResponse = prefs.getString("json", "");
            if (!cachedResponse.equals("")) {
                parseData(cachedResponse);
            } else {
                Toast.makeText(MainActivity.this, getString(R.string.network_error), Toast.LENGTH_LONG).show();
                finish();
            }
        }
    }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("key",getResources().getString(R.string.api_key));
            return headers;
        }
    }; 
    strReqUpdate.setShouldCache(false);
    AppController.getInstance().addToRequestQueue(strReqUpdate, Constants.TAG_STRING_REQ);
StringRequest strequpdate=new-StringRequest(Request.Method.GET,versioncheckul,new-Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
initJson=响应;
试一试{
JSONObject root=新的JSONObject(initJson);
最终长版本=root.getLong(“最新的_更新”);
long localVersion=prefs.getLong(“版本”,0);
布尔标志=假;
如果(版本!=localVersion){
flag=true;
}
如果(flag==true){
StringRequest strReq=newStringRequest(Request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
SharedReferences.Editor=prefs.edit();
putString(“json”,响应);
编辑:普特龙(“版本”,版本);
commit();
解析数据(响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
String cachedResponse=prefs.getString(“json”和“”);
如果(!cachedResponse.equals(“”){
解析数据(缓存响应);
}否则{
Toast.makeText(MainActivity.this、getString(R.string.network_error)、Toast.LENGTH_LONG.show();
完成();
}
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“key”,getResources().getString(R.string.api_key));
返回标题;
}
};
strReq.setShouldCache(false);
AppController.getInstance().addToRequestQueue(streq,Constants.TAG\u STRING\u REQ);
}
否则{
String cachedResponse=prefs.getString(“json”和“”);
如果(!cachedResponse.equals(“”){
解析数据(缓存响应);
}否则{
Toast.makeText(MainActivity.this、getString(R.string.network_error)、Toast.LENGTH_LONG.show();
完成();
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
String cachedResponse=prefs.getString(“json”和“”);
如果(!cachedResponse.equals(“”){
解析数据(缓存响应);
}否则{
Toast.makeText(MainActivity.this、getString(R.string.network_error)、Toast.LENGTH_LONG.show();
完成();
}
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“key”,getResources().getString(R.string.api_key));
返回标题;
}
}; 
streqUpdate.setShouldCache(false);
AppController.getInstance().addToRequestQueue(streqUpdate,Constants.TAG_STRING_REQ);
我在这里所做的是发出一个请求,看看是否有对我的JSON的更新,以及是否有开始获取它的请求(如果没有得到兑现的JSON)。这两个请求都使用ssl发送到heroku服务器,但只有第二个请求抛出错误。我想我得到了一个ssl错误,我甚至试图在各种帖子中看到ssl握手,但没有任何效果

第二个请求是:

         StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {                               
                        SharedPreferences.Editor editor = prefs.edit();
                        editor.putString("json", response);                                                                                              
                        editor.putLong("version", version);
                        editor.commit();

                        parseData(response); 
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        String cachedResponse = prefs.getString("json", "");

                        if (!cachedResponse.equals("")) {
                            parseData(cachedResponse);
                        } else {
                            Toast.makeText(MainActivity.this, getString(R.string.network_error), Toast.LENGTH_LONG).show();
                            finish();
                        }
                    }
                }) {
                    @Override
                    public Map<String, String> getHeaders() throws AuthFailureError {
                        HashMap<String, String> headers = new HashMap<String, String>();
                        headers.put("key", getResources().getString(R.string.api_key));
                        return headers;
                    }
                };
                strReq.setShouldCache(false);
                AppController.getInstance().addToRequestQueue(strReq, Constants.TAG_STRING_REQ);
StringRequest strReq=new-StringRequest(Request.Method.GET,url,new-Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
SharedReferences.Editor=prefs.edit();
putString(“json”,响应);
编辑:普特龙(“版本”,版本);
commit();
解析数据(响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
String cachedResponse=prefs.getString(“json”和“”);
如果(!cachedResponse.equals(“”){
解析数据(缓存响应);
}否则{
Toast.makeText(MainActivity.this、getString(R.string.network_error)、Toast.LENGTH_LONG.show();
完成();
}
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“key”,getResources().getString(R.string.api_key));
返回标题;
}
};
strR
jsonRequest.setRetryPolicy(new DefaultRetryPolicy(10000,
                            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));