Android 尝试连接到Web服务器时,应用程序崩溃

Android 尝试连接到Web服务器时,应用程序崩溃,android,crash,webserver,Android,Crash,Webserver,我想知道当我试图连接到Web服务器以从中发送/检索数据时,为什么我的应用程序会崩溃 有时它可以正常工作,但有时会出现错误-无法解析主机“URL”没有与主机名关联的地址-即使internet和Web服务器处于打开状态。我注意到,当google play更新应用程序时,这个错误发生得更频繁。有人知道为什么会发生这种情况,以及如何防止这种崩溃吗?下面是我正在使用的代码 //Manifest <uses-permission android:name="android.permission.INT

我想知道当我试图连接到Web服务器以从中发送/检索数据时,为什么我的应用程序会崩溃

有时它可以正常工作,但有时会出现错误-无法解析主机“URL”没有与主机名关联的地址-即使internet和Web服务器处于打开状态。我注意到,当google play更新应用程序时,这个错误发生得更频繁。有人知道为什么会发生这种情况,以及如何防止这种崩溃吗?下面是我正在使用的代码

//Manifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


class new_message extends AsyncTask<String, String, String> {

    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override
    protected String doInBackground(String... String) {

        try {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("id", id));
            JSONObject json = jsonParser.makeHttpRequest(url_message,"POST", params);

            if (json.getString("message").matches("nothing")) {
                flag = false;
            }else{
                flag = true;
                String att = json.getString("message");
                db.open();
                db.att_message(id, att);
                db.close();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(String file_url) {
        if (flag) {
            Intent msg = new Intent(context, Mensage.class);
            context.startActivity(msg);
        }
    }
}
//清单
类new_消息扩展异步任务{
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的字符串背景(字符串…字符串){
试一试{
List params=new ArrayList();
参数add(新的BasicNameValuePair(“id”,id));
JSONObject json=jsonParser.makeHttpRequest(url_消息,“POST”,参数);
if(json.getString(“message”).matches(“nothing”)){
flag=false;
}否则{
flag=true;
字符串att=json.getString(“消息”);
db.open();
db.att_消息(id,att);
db.close();
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
受保护的void onPostExecute(字符串文件\u url){
国际单项体育联合会(旗){
Intent msg=新的Intent(上下文、Mensage.class);
上下文。起始触觉(msg);
}
}
}
试试这个
请发布崩溃的堆栈跟踪,并在代码中指出崩溃发生的行。另外,请解释什么是
jsonParser
。发布
makeHttpRequest
函数的代码。
 @Override
 protected String doInBackground(String... mEntity) {

 try {
     HttpParams params = new BasicHttpParams();
     HttpClient httpclient = new DefaultHttpClient(params);
     HttpPost httppost = new HttpPost(App_URL);
     httppost.setEntity(mEntity);
     HttpResponse response = httpclient.execute(httppost);
     HttpEntity httpEntity = response.getEntity();  
     result = EntityUtils.toString(httpEntity);
     Log.d(TAG, result);
     jsonObject = new JSONObject(result);
 } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}