import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.jeecgframework.web.system.service.SystemService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.TestExecutionListeners;
import com.alibaba.fastjson.JSONArray;
import com.jeecg.toutiao.entity.ToutiaosEntity;
import com.jeecg.toutiao.service.ToutiaoServiceI;
import com.jeecg.toutiao.service.impl.ToutiaoServiceImpl;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import net.sf.json.JSONObject;
public class ApiUtils extends Thread{
public static final String DEF_CHATSET = "UTF-8";
public static final int DEF_CONN_TIMEOUT = 30000;
public static final int DEF_READ_TIMEOUT = 30000;
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
public static java.sql.Connection conn;
public static PreparedStatement ps;
//配置您申请的KEY
public static final String APPKEY ="";
public void run(){
getNews();
}
//2.请求头条消息查询接口
public static List<ToutiaosEntity> getNews(){
String result =null;
String url ="http://v.juhe.cn/toutiao/index";//请求接口地址
Map params = new HashMap();//请求参数
params.put("type", "&");
params.put("key", "31330e24d1b28367263e39dd7a6832a8");
ToutiaosEntity toutiaosEntity = new ToutiaosEntity();
List<ToutiaosEntity> lists = new ArrayList<ToutiaosEntity>();
try {
result =net(url, params, "GET");
JSONObject object = JSONObject.fromObject(result);
if(object.getInt("error_code")==0){
System.out.println(object.get("result"));
JSONObject objectS = JSONObject.fromObject(object.get("result"));
System.out.println(objectS.get("data"));
net.sf.json.JSONArray jsonArray = (net.sf.json.JSONArray) objectS.get("data");
System.out.println("--" + jsonArray.size());
for (int i = 0; i < jsonArray.size(); i++) {
String categorys = jsonArray.getString(i);
JSONObject totalData = JSONObject.fromObject(categorys);
String category = (String) totalData.get("category");
String title = (String) totalData.get("title");
String thumbnailPicS2 = (String) totalData.get("thumbnail_pic_s02");
String thumbnailPicS3 = (String) totalData.get("thumbnail_pic_s03");
String uniquekey = (String) totalData.get("uniquekey");
String authorName = (String) totalData.get("authorName");
String newsDate = (String) totalData.get("newsDate");
String newsUrl = (String) totalData.get("url");
String thumbnailPicS = (String) totalData.get("thumbnail_pic_s");
UUID id = UUID.randomUUID();
toutiaosEntity.setId(id.toString());
toutiaosEntity.setAuthorName(authorName);
toutiaosEntity.setCategory(category);
toutiaosEntity.setNewsDate(newsDate);
toutiaosEntity.setThumbnailPicS(thumbnailPicS);
toutiaosEntity.setThumbnailPicS2(thumbnailPicS2);
toutiaosEntity.setThumbnailPicS3(thumbnailPicS3);
toutiaosEntity.setTitle(title);
toutiaosEntity.setUniquekey(uniquekey);
toutiaosEntity.setUrl(newsUrl);
lists.add(toutiaosEntity);
String sql = "insert into toutiao (id,category,title,THUMBNAIL_PIC_S2,THUMBNAIL_PIC_S3,uniquekey,AUTHOR_NAME,NEWS_DATE,url,THUMBNAIL_PIC_S) values(?,?,?,?,?,?,?,?,?,?)";
conn=getConnection();
ps = (PreparedStatement) conn.prepareStatement(sql);
ps.setString(1, toutiaosEntity.getId());
ps.setString(2, toutiaosEntity.getCategory());
ps.setString(3, toutiaosEntity.getTitle());
if(toutiaosEntity.getThumbnailPicS2() != null){
ps.setString(4, toutiaosEntity.getThumbnailPicS2());
ps.setString(5, toutiaosEntity.getThumbnailPicS3());
}
else{
ps.setString(4, "");
ps.setString(5, "");
}
ps.setString(6, toutiaosEntity.getUniquekey());
ps.setString(7, toutiaosEntity.getAuthorName());
ps.setString(8, toutiaosEntity.getNewsDate());
ps.setString(9, toutiaosEntity.getUrl());
ps.setString(10, toutiaosEntity.getThumbnailPicS());
ps.executeUpdate();
ps.close();
conn.close();
}
//插入数据库
}else{
System.out.println(object.get("error_code")+":"+object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
return lists;
}
public static java.sql.Connection getConnection(){
String url="jdbc:mysql://localhost:3306/jeecg";
String userName="root";
String password="111111";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动!");
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, userName, password);
if(conn!=null){
System.out.println("connection successful");
}
} catch (SQLException e) {
System.out.println( "connection fail");
e.printStackTrace();
}
return conn;
};
public static void main(String[] args) {
ApiUtils api = new ApiUtils();
api.start();
}
/**
*
* @param strUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 网络请求字符串
* @throws Exception
*/
public static String net(String strUrl, Map params,String method) throws Exception {
HttpURLConnection conn = null;
BufferedReader reader = null;
String rs = null;
try {
StringBuffer sb = new StringBuffer();
if(method==null || method.equals("GET")){
strUrl = strUrl+"?"+urlencode(params);
}
URL url = new URL(strUrl);
conn = (HttpURLConnection) url.openConnection();
if(method==null || method.equals("GET")){
conn.setRequestMethod("GET");
}else{
conn.setRequestMethod("POST");
conn.setDoOutput(true);
}
conn.setRequestProperty("User-agent", userAgent);
conn.setUseCaches(false);
conn.setConnectTimeout(DEF_CONN_TIMEOUT);
conn.setReadTimeout(DEF_READ_TIMEOUT);
conn.setInstanceFollowRedirects(false);
conn.connect();
if (params!= null && method.equals("POST")) {
try {
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(urlencode(params));
} catch (Exception e) {
// TODO: handle exception
}
}
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
rs = sb.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rs;
}
//将map型转为请求参数型
public static String urlencode(Map<String,Object>data) {
StringBuilder sb = new StringBuilder();
for (Map.Entry i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}