NewslistBeanNewslistBean
1.HttpClient的doget请求
String path = http://api.expoon.com/AppNews/getNewsList/type/1/p/1; HttpClient client=new DefaultHttpClient(); HttpGet hg=new HttpGet(path); HttpResponse execute = client.execute(hg); int code = execute.getStatusLine().getStatusCode(); if (code== 200){ InputStream inputStream = execute.getEntity().getContent(); String json = streamToString(inputStream,"utf-8"); return json; }
2.httpclient的dopost请求//1.客户端对象HttpClient client = new DefaultHttpClient();String path = "http://v.juhe.cn/toutiao/index"; //2.指定请求方式的对象 HttpPost httpPost = new HttpPost(path);//5.创建传递参数的集合....并且把传递的参数放到集合中 List<BasicNameValuePair> params = new ArrayList<>();params.add(new BasicNameValuePair("type","top")); params.add(new BasicNameValuePair("key","597b4f9dcb50e051fd725a9ec54d6653"));//4.创建一个请求实体内容的对象,,,,UrlEncodedFormEntity支持url编码,并且支持form格式 //list<? extends NameValuePair> params 要给服务器传递的参数,,,所有的参数需要放到集合里面,string encoding指定编码字符集HttpEntity entity = new UrlEncodedFormEntity(params,"utf-8"); //3.http协议中,post请求方式,请求的参数是在请求的实体内容中....setEntity设置请求实体内容的对象 httpPost.setEntity(entity);//6.执行post请求 HttpResponse httpResponse = client.execute(httpPost);//7.获取 int statusCode = httpResponse.getStatusLine().getStatusCode(); if (statusCode == 200){ //获取到响应的字节流 InputStream inputStream = httpResponse.getEntity().getContent();String json = streamToString(inputStream,"utf-8");Log.i("--json---",json); }3. 转编码的方法private String streamToString(InputStream inputStream,String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null){ builder.append(s); }bufferedReader.close(); return builder.toString();} catch (Exception e) { e.printStackTrace(); }return null; }