Android是挂而Android没有找到连接没有找到、Android

2023-09-06 15:35:49 作者:薄荷加冰丶微微凉℡

我创建一个Android应用程序,但同时(如?)找不到服务器,它会挂起工具包(SDK /模拟器?)。 我重视我的登录code。请大家帮我想办法了。我只是想,如果服务器不可用,我的申请将留在登录页面,但不挂本身。

当我调试我的code,我没有得到的HTT presponse价值,这行之后

 的Htt presponse HTT presponse = httpclient.execute(httpPost);
 

发生问题

 公共字符串登录(用户名字符串,字符串密码){
        尝试 {
            字符串URL = URL +标志=?+上的+&放大器;用户=+的userName +&放大器;通=+密码;
            httpPost =新HttpPost(URL);
            HTT presponse HTT presponse = httpclient.execute(httpPost);
            INT状态code = HTT presponse.getStatusLine()的getStatus code()。
            如果(状态code == 200){
                字符串responseMsg = GETRESPONSE(HTT presponse);
                返回responseMsg;
            }其他{
                Log.e(TAG,状态code +);
            }
        }赶上(ClientProtocolException E){
            Log.e(TAG,e.getMessage(),E);
        }赶上(IOException异常E){
            Log.e(TAG,e.getMessage(),E);
        }
        返回null;
    }
 
Android Studio里面找不到连接设备问题

解决方案

您还应该考虑确定一个时限(如5秒),这样系统不会尝试连接到无法访问服务器很长一段时间。

 最后的HttpParams的HttpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(的HttpParams,5000);
HttpConnectionParams.setSoTimeout(的HttpParams,5000);
 

I am creating an android application but while(if?) server is not found, it will hang the tool kit (SDK/emulator?). I have attached my login code. Please help me to find the solution. I just want that if server is not available, my application will stay on at the login page without hanging itself.

when I debugged my code I didn't get value of httpResponse and after this line

HttpResponse httpResponse = httpclient.execute(httpPost);

the problem occurred

public String login(String userName, String password){
        try {
            String url = URL+ "?flag="+"on"+"&user="+userName+"&pass="+password;
            httpPost = new HttpPost(url);
            HttpResponse httpResponse = httpclient.execute(httpPost);
            int statuscode = httpResponse.getStatusLine().getStatusCode();
            if (statuscode == 200) {
                String responseMsg = getResponse(httpResponse); 
                return responseMsg;
            }else{
                Log.e(TAG, statuscode+"");
            }
        } catch (ClientProtocolException e) {
            Log.e(TAG, e.getMessage(),e);
        } catch (IOException e) {
            Log.e(TAG, e.getMessage(),e);
        }
        return null;
    }

解决方案

You also should consider to define a timeout (e.g. 5 seconds) so that the system does not try to connect to an unreachable server for a long time.

final HttpParams httpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);