我想将我的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);
答案 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();
}
在调用异步任务之前 如果异常发生,请重新运行应用程序第二次正常运行