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

时间:2014-12-29 13:42:05

标签: android crash webserver

我想知道当我尝试连接到网络服务器以从中发送/检索数据时,我的应用程序崩溃的原因。

有时它工作正常,但有时我会收到错误 - 无法解析主机" URL"没有与主机名相关联的地址 - 即使互联网和网络服务器已开启。我注意到,当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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个

 @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;
}