我有一个与Web服务器通信以检索某些数据的应用程序,该应用程序始终正常工作但现在显示此错误:
javax.net.ssl.SSLException:由同行关闭的连接
这只发生在我使用android< 4.4如果是6.0>它工作正常
public void volleyJsonObjectRequest(String url){
String REQUEST_TAG = "com.androidtutorialpoint.volleyJsonObjectRequest";
pDialog = new ProgressDialog(LoginActivity.this);
pDialog.setMessage("Efetuando login..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
json = new JSONObject(response);
userId = json.getString("userid");
userType = json.getString("usertype");
dbversion = json.getInt("dbversion");
success = json.getInt(TAG_SUCCESS);
message = json.getString(TAG_MESSAGE);
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
enviadoComSucesso();
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
userMsg("Não foi possível fazer conexão, por favor tenta novamente.");
}
}
) {
@Override
protected Map<String, String> getParams()
{
String usuario = LoginActivity.this.userTemp;
String password = LoginActivity.this.passTemp;
Map<String, String> param = new HashMap<>();
//ENVIO DOS DADOS DE AVALIAÇÕES
param.put("usuario", usuario);
param.put("password", password);
return param;
}
};
// Adding JsonObject request to request queue
AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(postRequest,REQUEST_TAG);
postRequest.setRetryPolicy(new DefaultRetryPolicy(
2000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}
为什么现在显示此错误?我的所有应用程序现在都有此错误。当我看到这个错误时,我搜索并通过Sticky找到了这个解决方案
问题是由于TLSv1在后端被禁用。 根据具体情况,可以采用两种方法来解决此问题。 1.在后端服务器上启用TLSv1。 2.根据建议,更新SSLEngine以在移动应用程序上支持更高版本的TLS。
但我面临困境因为不是VOLLEY APROACH,我必须做什么?
答案 0 :(得分:0)
我几个月前遇到过这个问题,解决方法是从后端启用TLSv1协议
检查
SSL protocols supported by devices lower than 4.4 "TLSv1" and "SSLv3"
SSL protocols supported by devices higher than 4.4 "TLSv1", "TLSv1.1" and "TLSv1.2"
您的Volley代码没有问题