android 学习随笔十一(网络:HttpClient框架)
2016-10-26 13:35
465 查看
1、使用HttpClient框架发送get、post请求
google收集apache提供的一个发送Http请求框架
google收集apache提供的一个发送Http请求框架
public class Tools { public static String getTextFromStream(InputStream is){ byte[] b = new byte[1024]; int len; ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { while((len = is.read(b)) != -1){ bos.write(b, 0, len); } //把字节数组输出流转换成字节数组,然后用字节数组构造一个字符串 String text = new String(bos.toByteArray()); return text; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
public class MainActivity extends Activity { Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { Toast.makeText(MainActivity.this, (String)msg.obj, 0).show(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //get请求 public void click1(View v){ //获取用户输入的账号密码 EditText et_name = (EditText) findViewById(R.id.et_name); EditText et_pass = (EditText) findViewById(R.id.et_pass); String name = et_name.getText().toString(); String pass = et_pass.getText().toString(); final String path = "http://169.254.244.136/Web2/servlet/Login?name=" + URLEncoder.encode(name) + "&pass=" + pass; Thread t = new Thread(){ @Override public void run() { //使用httpClient框架提交 //1.创建client对象 HttpClient client = new DefaultHttpClient(); //2.创建get请求对象 HttpGet get = new HttpGet(path); try { //3.使用client发送get请求 HttpResponse response = client.execute(get); //获取状态行 StatusLine line = response.getStatusLine(); //获取状态码 int code = line.getStatusCode(); if(code == 200){ //获取实体 HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); String text = Tools.getTextFromStream(is); Message msg = handler.obtainMessage(); msg.obj = text; handler.sendMessage(msg); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; t.start(); } //Post请求 public void click2(View v){ //获取用户输入的账号密码 EditText et_name = (EditText) findViewById(R.id.et_name); EditText et_pass = (EditText) findViewById(R.id.et_pass); final String name = et_name.getText().toString(); final String pass = et_pass.getText().toString(); final String path = "http://169.254.244.136/Web2/servlet/Login"; Thread t = new Thread(){ @Override public void run() { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(path); //把要提交的数据封装至post中 List<NameValuePair> parameters = new ArrayList<NameValuePair>(); //arg0:表单的名字 //arg1:表单中的值 BasicNameValuePair bnvp1 = new BasicNameValuePair("name", name); BasicNameValuePair bnvp2 = new BasicNameValuePair("pass", pass); //把BasicNameValuePair对象放入集合 parameters.add(bnvp1); parameters.add(bnvp2); //创建实体对象 UrlEncodedFormEntity entity = null; try { //把集合对象封装到实体中 entity = new UrlEncodedFormEntity(parameters, "utf-8"); } catch (Exception e1) { e1.printStackTrace(); } //把实体对象封装至post对象中 post.setEntity(entity); try { HttpResponse response = client.execute(post); if(response.getStatusLine().getStatusCode() == 200){ InputStream is = response.getEntity().getContent(); String text = Tools.getTextFromStream(is); Message msg = handler.obtainMessage(); msg.obj = text; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }; t.start(); } }
相关文章推荐
- android 学习随笔十一(网络:HttpClient框架)
- Android网络框架学习之HttpClient
- Android 网络操作学习HttpURLConnection与HttpClient及网络框架选择
- Base-Android快速开发框架(四)--网络操作之FastJson以及AsyncHttpClient
- android 学习随笔十二(网络:使用异步HttpClient框架)
- android 网络框架学习(okhttp,retrofit,rxjava)
- Base-Android快速开发框架(五)--网络操作之RequestModel、ResponeModel、CustomAsyncHttpClient
- Android网络框架volley学习(十一)volley源码解析总结
- android网络框架volley学习之HttpStack接口
- android 学习随笔十二(网络:使用异步HttpClient框架)
- Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
- android网络请求框架的学习之路——浅谈对Volley,OkHttp,Retrofit的了解与对比
- Android网络请求框架--AsyncHttpClient
- Android-AsyncHttpClient网络框架
- android网络请求框架的学习之路——浅谈对Volley,OkHttp,Retrofit的了解与对比 标签: androidVolleyOkhttpRetrofit网络请求框架
- android网络请求框架的学习之路——浅谈对Volley,OkHttp,Retrofit的了解与对比
- Android之okHttpClient+handler+LruCache缓存网络图片学习笔记(通用MVP模式)
- android网络请求框架 HttpClient与Volley的性能对比
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- Android学习指南之三十:使用URLConnection和HttpClient访问网络的方法