67,512
社区成员
发帖
与我相关
我的任务
分享
String html = HttpUtils.sendGet("https://passport.csdn.net/account/login"); //单独拿出来的报错的语句
class HttpUtils {
private static CloseableHttpClient httpClient = HttpClients.createDefault();
private static HttpClientContext context = new HttpClientContext();
private static String token;
private HttpUtils() {
}
public static String getToken() {
return token;
}
public static String sendGet(String url) {
CloseableHttpResponse response = null;
String content = null;
try {
HttpGet get = new HttpGet(url);
// get.setHeader("Cookie", getToken());
response = httpClient.execute(get, context);
HttpEntity entity = response.getEntity();
content = EntityUtils.toString(entity);
EntityUtils.consume(entity);
return content;
} catch (Exception e) {
e.printStackTrace();
if (response != null) {
try {
response.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
return content;
}
public static String sendPost(String url, List<NameValuePair> nvps) {
CloseableHttpResponse response = null;
String content = null;
try {
// HttpClient中的post请求包装类
HttpPost post = new HttpPost(url);
// nvps是包装请求參数的list
if (nvps != null) {
post.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
}
// 运行请求用execute方法,content用来帮我们附带上额外信息
response = httpClient.execute(post, context);
HeaderIterator it = response.headerIterator();
while(it.hasNext()) {
// System.out.println(it.next());
String str = it.next().toString();
if(str.contains("access-token")) {
token = str.split(";")[0].split(": ")[1];
System.out.println(token);
}
}
// 得到对应实体、包含响应头以及对应内容
HttpEntity entity = response.getEntity();
// 得到response的内容
content = EntityUtils.toString(entity);
// 关闭输入流
EntityUtils.consume(entity);
return content;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content;
}
}