#HttpClient
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议
* 百度搜索...android studio中使用httpClient
在android 6.0(API 23)中,Google已经移除了移除了Apache HttpClient相关的类
推荐使用HttpUrlConnection,如果要继续使用需要Apache HttpClient,需要在eclipse下libs里添加org.apache.http.legacy.jar,android studio里在相应的module下的build.gradle中加入:
android {
useLibrary 'org.apache.http.legacy'
}
SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());
get请求
HttpClient client = new DefaultHttpClient(); String path = "网络路径"; HttpGet httpGet = new HttpGet(path); HttpResponse httpResponse = client.execute(httpGet); int statusCode = httpResponse.getStatusLine().getStatusCode(); if (statusCode == 200){ InputStream inputStream = httpResponse.getEntity().getContent();
}
post请求
//有一个请求的http客户端对象
HttpClient client = new DefaultHttpClient();
String path = "http://v.juhe.cn/toutiao/index";
//指定请求方式的对象
HttpPost httpPost = new HttpPost(path);
//创建传递参数的集合....并且把传递的参数放到集合中
List<BasicNameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("type","top"));
params.add(new BasicNameValuePair("key","597b4f9dcb50e051fd725a9ec54d6653"));
//创建一个请求实体内容的对象,,,,UrlEncodedFormEntity支持url编码,并且支持form格式
//list<? extends NameValuePair> params 要给服务器传递的参数,,,所有的参数需要放到集合里面,string encoding指定编码字符集
HttpEntity entity = new UrlEncodedFormEntity(params,"utf-8");
//http协议中,post请求方式,请求的参数是在请求的实体内容中....setEntity设置请求实体内容的对象
httpPost.setEntity(entity);
//执行post请求
HttpResponse httpResponse = client.execute(httpPost);
//获取
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == 200){
//获取到响应的字节流
InputStream inputStream = httpResponse.getEntity().getContent();
}