Commit 9ffcd2dc authored by chuwanshun's avatar chuwanshun

测试论文接口

parent 6ac667d2
No preview for this file type
......@@ -50,7 +50,7 @@ public class RSAEncryptUtil {
* 拼接待签名字符串 RSA2对应的函数
*/
Map map = new HashMap();
map.put("id", "CN87108297");
map.put("id", "CN2007800");
String content = AlipaySignature.getSignCheckContentV2(map);
// String content = JSON.toJSONString(map);
......
package com.cesgroup.common.utils.http;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder;
......@@ -50,10 +68,32 @@ public class HttpClientConfig {
@Value("${http.retryCount}")
private int retryCount = 3;
@Bean
public PoolingHttpClientConnectionManager createPoolingHttpClientConnectionManager() {
PoolingHttpClientConnectionManager poolmanager = new PoolingHttpClientConnectionManager();
//需要通过以下代码声明对https连接支持
SSLContext sslcontext = null;
try {
sslcontext = SSLContexts.custom().loadTrustMaterial(null,
new TrustSelfSignedStrategy())
.build();
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HostnameVerifier hostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,hostnameVerifier);
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", sslsf)
.build();
PoolingHttpClientConnectionManager poolmanager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
poolmanager.setMaxTotal(maxTotal);
poolmanager.setDefaultMaxPerRoute(defaultMaxPerRoute);
poolmanager.setValidateAfterInactivity(validateAfterInactivity);
......
......@@ -2,6 +2,7 @@ package com.cesgroup.kingkong.mapper;
import java.util.HashMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -20,10 +21,20 @@ public class EsMapper {
public String postQuery(String query) {
String uriString =esHostAddress+"/"+"patent*/"+"_search/";
//String uriString =esHostAddress+"/"+"testhbase*/"+"_search/";
HashMap<String, Object> header = new HashMap<String, Object>();
String result = httpClientHelper.postJSON(uriString, query, header);
return result;
}
public String getArticleInfo() {
String uriString ="https://api.elsevier.com/content/search/scopus";
//String uriString =esHostAddress+"/"+"testhbase*/"+"_search/";
HashMap<String, Object> header = new HashMap<String, Object>();
HashMap<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("start", 0);
paramMap.put("count", 25);
paramMap.put("query", "AFFILCITY(beijing)");
header.put("X-ELS-APIKey", "d7513bc36ec90aa7662c0cfb28b3dd3b");
String result = httpClientHelper.get(uriString, paramMap, header);
return result;
}
}
package com.cesgroup.kingkong.service.impl;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -35,6 +36,8 @@ public class QueryService {
// 首先id满足条件,通过Id去查
String VALID_NAME = "^[A-Za-z][A-Za-z].*[.][0-9]$";
String PRE_VALID_NAME = "^[A-Za-z][A-Za-z].*$";
long ti = System.currentTimeMillis();
System.out.println("开始查询:"+ti);
if (isValidId(id, VALID_NAME)) {
if ("zl".equalsIgnoreCase(id.substring(0, 2))) {
id = "CN" + id.substring(2, id.length());
......@@ -55,13 +58,38 @@ public class QueryService {
id = "CN".concat(id);
}
result = queryById(id);
System.out.println("结束查询1:"+(System.currentTimeMillis()-ti));
if (result.size()==0 && id.lastIndexOf(".") != -1) {
id = id.substring(0, id.lastIndexOf("."));
result = queryById(id);
}
System.out.println("结束查询2:"+(System.currentTimeMillis()-ti));
System.out.println("查询id: " + id);
return result;
}
/**
* 查询论文信息
* @return
* Map<String,Object>
*/
public Map<String, Object> queryArticleInfo() {
Map<String, Object> result = new HashMap<String, Object>();
String resultJsonString=esMapper.getArticleInfo();
System.out.println("查询出的字符串"+resultJsonString);
result = parseArticleInfo(resultJsonString);
return result;
}
/**
* 解析论文信息
* @param articleInfo
* @return
* Map<String,Object>
*/
private Map<String, Object> parseArticleInfo(String articleInfo) {
Map<String, Object> result = new HashMap<String, Object>();
return result;
}
/**
* id格式检验
......@@ -83,7 +111,7 @@ public class QueryService {
*/
public Map<String, Object> queryById(String id) {
// 需要返回的字段
String fields = "[\"title\",\"legal_status_result\",\"appno\",\"appdate\",\"pubno\",\"pubdate\",\"legal_status\",\"granted_status\",\"patent_type\",\"ipcs\",\"agents\",\"inventors\",\"applicants\",\"owners\",\"abstract\"]";
String fields = "[\"pubkind\",\"title\",\"legal_status_result\",\"appno\",\"appdate\",\"pubno\",\"pubdate\",\"legal_status\",\"granted_status\",\"patent_type\",\"ipcs\",\"agents\",\"inventors\",\"applicants\",\"owners\",\"abstract\"]";
Map<String, Object> resultMap = new HashMap<String, Object>();
Map<String, Object> result = new HashMap<String, Object>();
JSONObject sourceJsonObject = null;
......@@ -132,8 +160,12 @@ public class QueryService {
+ application_date1.substring(6, 8);
}
resultMap.put("application_date", application_date);
String publication_number = sourceJsonObject.getString("pubno");
resultMap.put("publication_number", publication_number);
String pubno = sourceJsonObject.getString("pubno");
String pubkind = sourceJsonObject.getString("pubkind");
JSONObject pmJsonObject = new JSONObject();
pmJsonObject.put("pubno", StringUtils.isNotBlank(pubno)?pubno:"");
pmJsonObject.put("pubkind", StringUtils.isNotBlank(pubkind)?pubkind:"");
resultMap.put("publication_number", pmJsonObject);
String publication_date1 = sourceJsonObject.getString("pubdate");
String publication_date = "";
if (StringUtils.isNotBlank(publication_date1)) {
......
......@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.cesgroup.common.utils.RestAPIResult;
import com.cesgroup.kingkong.interceptor.RequiredPermission;
import com.cesgroup.kingkong.service.impl.QueryService;
......@@ -56,5 +57,17 @@ public class SearchContrllor {
}
return panResult;
}
/**查询论文接口(待完成)
* @return
* RestAPIResult<Object>
*/
@RequiredPermission
@RequestMapping(value = "queryArticleInfo", method = { RequestMethod.POST })
public RestAPIResult<Object> queryArticleInfo() {
RestAPIResult<Object> panResult = new RestAPIResult<Object>();
Map<String, Object> result = null;
result = queryService.queryArticleInfo();
return panResult;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment