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 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;
}