){
@Override public void onClick(View arg0) { // TODO Auto-generated method stub String str = strView.getText().toString();//参数 Nameva luePair nameva luePair = new BasicNameva luePair("content", str);//键值对 //然后将键值对放到列表里(类似于形成数组) //List是一个接口,而ListArray是一个类。ListArray继承并实现了List。所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。 //List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了 //而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。 //为什么一般都使用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢? 问题就在于List有多个实现类,如 LinkedList或者Vector等等,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类呢?,这时你只要改变这一行就行了:List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。 List nameva luePairs = new ArrayList(); nameva luePairs.add(nameva luePair);//将键值对放入到列表中 try { HttpEntity requestHttpEntity = new UrlEncodedFormEntity(nameva luePairs);//对参数进行编码操作 //生成一个post请求对象 HttpPost httpPost = new HttpPost(baseUrl); httpPost.setEntity(requestHttpEntity); //生成一个http客户端对象 HttpClient httpClient = new DefaultHttpClient();//发送请求 try { httpResponse = httpClient.execute(httpPost);//接收响应 httpEntity = httpResponse.getEntity();//取出响应 //客户端收到响应的信息流 inputStream = httpEntity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String result = ""; String line = ""; while((line = reader.readLine()) != null){ result = result + line; } System.out.println(result); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{//最后一定要关闭输入流 try{ inputStream.close(); }catch(Exception e){ e.printStackTrace(); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } }
AndroidManifest.xml
< xml version="1.0" encoding="utf-8" > package="com.http" android:versionCode="1" android:versionName="1.0">
android:label="@string/app_name">
注意的几点哦:
1.get方式的参数是加在url后面的,而post方式是讲参数先放到键值对对象中,然后将键值对相添加到list列表里,然后讲列表放到信息里进行发送
2.http请求发送需要连网,故AndroidManifest.xml中要加上连网权限
3.获得消息的时候要创建文本输入流,结束时一定要关闭输入流。
try{ inputStream.close(); }catch(Exception e){ e.printStackTrace(); }
暂时就这些吧。
|