首先要重新启用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();
}
}