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