Android截击SSL错误
am在同一台服务器上使用两个嵌套的截击请求,但第二个请求返回时出错: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
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));