它没有工作将Android应用程序连接到servlet页面传递数据

时间:2012-02-26 21:24:23

标签: android servlets android-intent android-networking

我想将我的Android应用程序连接到我的servlet网站,我需要将一些数据从应用程序传递到网址

任何人都可以帮助我吗?

我已编写此代码以传递两个参数,但它会生成异常:

HttpPost postMethod = new HttpPost("http://androidsaveitem.appspot.com/view");
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("description+", "HAANAA"));
formparams.add(new BasicNameValuePair("id+", "11223"));
UrlEncodedFormEntity entity;
entity = new UrlEncodedFormEntity(formparams);
postMethod.setEntity(entity);
DefaultHttpClient hc = new DefaultHttpClient();
HttpResponse response = hc.execute(postMethod);

1 个答案:

答案 0 :(得分:0)

似乎您正在阻止UI线程,并且引发了ANR异常,因为如果您的UI线程被阻止5秒钟将发生此异常,为了解决此问题,您可以使用Thread或AsyncTask来完成工作,所以您的UI线程不会被阻止

示例:

public myAsnyc extends AsyncTask<Void, Void,Void>{



protected void doInBackground(){

HttpPost postMethod = new HttpPost("http://androidsaveitem.appspot.com/view");
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("description+", "HAANAA"));
formparams.add(new BasicNameValuePair("id+", "11223"));
UrlEncodedFormEntity entity;
entity = new UrlEncodedFormEntity(formparams);
postMethod.setEntity(entity);
DefaultHttpClient hc = new DefaultHttpClient();
HttpResponse response = hc.execute(postMethod);



    }
protected void onPostExecute(){

    log.d("myApp", "success");
}

    }

如果你想执行它 打这个电话

new myAsnyc().execute();

如果要更新UI元素,请使用onPostExecute()方法并修改异步任务的泛型类型

更新

执行以下代码 使用此代码

try {
      InetAddress i = InetAddress.getByName("http://androidsaveitem.appspot.com/view");
    } catch (UnknownHostException e1) {
      e1.printStackTrace();
    }

在调用异步任务之前 如果异常发生,请重新运行应用程序第二次正常运行