HttpClient

来源:互联网 发布:合肥市行知学校校长 编辑:程序博客网 时间:2024/06/06 04:19

首先要重新启用HttpClient的话先在build.gradle里面设置

android{

useLibrary 'org.apache.http.legacy'//设置HttpClient重新启用

}



post请求方式

  private void postNews(String type, String key) {        String result = null;        HttpClient client = new DefaultHttpClient();        HttpPost httpPost = new HttpPost(POSTURL);        try {            //封装传递参数的集合            List<NameValuePair> parameters = new ArrayList<NameValuePair>();            //往这个集合中添加你要传递的参数            parameters.add(new BasicNameValuePair("type", type));            parameters.add(new BasicNameValuePair("key", key));            //创建传递参数封装 实体对象            UrlEncodedFormEntity encodeEntity = new UrlEncodedFormEntity(parameters, "UTF-8");//设置传递参数的编码            //把实体对象存入到httpPost对象中            httpPost.setEntity(encodeEntity);            //3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例            HttpResponse response = client.execute(httpPost); //HttpUriRequest的后代对象 //在浏览器中敲一下回车            //根据响应行,拿到响应吗            int responseCode = response.getStatusLine().getStatusCode();            response_msg = response.getStatusLine().getReasonPhrase();            //4. 读 response            if (200 == responseCode) {//如果响应码是200,则请求成功,否则失败                //得到返回的实体对象                HttpEntity entity = response.getEntity();                InputStream in = entity.getContent();                ByteArrayOutputStream byteOut = new ByteArrayOutputStream();                int length = 0;                byte[] buffer = new byte[1024];                while ((length = in.read(buffer)) != -1) {                    byteOut.write(buffer, 0, length);                }                result = byteOut.toString("utf-8");                      Message msg = new Message();                msg.what = SUCCESS;                msg.obj = result;                mHttpClientHandler.sendMessage(msg);            } else {//请求失败,处理请求失败逻辑                Message msg = new Message();                msg.what = FAIL;                mHttpClientHandler.sendMessage(msg);            }        } catch (Exception e) {            e.printStackTrace();        }    }

GET请求方式

private void getNews() {        StringBuffer result = new StringBuffer();        //创建HttpClient对象,打开一个浏览器        HttpClient httpClient = new DefaultHttpClient();        //创建HttpGet对象,get请求的对象,传入url        HttpGet httpGet = new HttpGet(GETURL);        try {            //发起请求,拿到HttpResponse对象,这个对象是服务器返回的数据对象            HttpResponse httpResponse = httpClient.execute(httpGet);            //根据响应行,拿到响应吗            int responseCode = httpResponse.getStatusLine().getStatusCode();            response_msg = httpResponse.getStatusLine().getReasonPhrase();            if (200 == responseCode) {//如果响应码是200,则请求成功,否则失败                //得到返回的实体对象                HttpEntity entity = httpResponse.getEntity();                InputStream in = entity.getContent();                BufferedReader reader = new BufferedReader(new InputStreamReader(in));                String line = null;                while ((line = reader.readLine()) != null) {                    result.append(line);                }                              Message msg = new Message();                msg.what = SUCCESS;                msg.obj = result.toString();                mHttpClientHandler.sendMessage(msg);            } else {//请求失败,处理请求失败逻辑                Message msg = new Message();                msg.what = FAIL;                mHttpClientHandler.sendMessage(msg);            }        } catch (IOException e) {            e.printStackTrace();        } finally {            httpClient.getConnectionManager().shutdown();        }    }