0

我想将我的 android 应用程序连接到我的 servlet 站点,我需要将一些数据从应用程序传递到 url

谁能帮我?

我编写了这段代码来传递两个参数,但它会生成一个异常:

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);
4

1 回答 1

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();
    }

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

于 2012-02-28T12:23:03.840 回答