diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 71c67c0..f370cc1 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -30,6 +30,11 @@ provided + com.casic + casic-http + ${ext.version} + + org.springframework.boot spring-boot-starter-web ${boot.version} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 71c67c0..f370cc1 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -30,6 +30,11 @@ provided + com.casic + casic-http + ${ext.version} + + org.springframework.boot spring-boot-starter-web ${boot.version} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java new file mode 100644 index 0000000..ae105f8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.handler; + +import cn.hutool.core.util.StrUtil; +import org.apache.http.client.methods.HttpRequestBase; + +/** + * 默认请求header + * + * @author lwh + */ +public class OceanHttpHeaderHandler extends DefaultHttpHeaderHandler { + @Override + public void setHeader(HttpRequestBase base, String token) { + if (StrUtil.isNotEmpty(token)) { + base.addHeader("Authorization", token); + } + } +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 71c67c0..f370cc1 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -30,6 +30,11 @@ provided + com.casic + casic-http + ${ext.version} + + org.springframework.boot spring-boot-starter-web ${boot.version} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java new file mode 100644 index 0000000..ae105f8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.handler; + +import cn.hutool.core.util.StrUtil; +import org.apache.http.client.methods.HttpRequestBase; + +/** + * 默认请求header + * + * @author lwh + */ +public class OceanHttpHeaderHandler extends DefaultHttpHeaderHandler { + @Override + public void setHeader(HttpRequestBase base, String token) { + if (StrUtil.isNotEmpty(token)) { + base.addHeader("Authorization", token); + } + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java index 567e912..29b6af2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java @@ -1,18 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.casic.missiles.modular.system.dto.OceanDetailDTO; +import com.casic.missiles.modular.system.handler.OceanHttpHeaderHandler; import com.casic.missiles.modular.system.model.OceanDetailModel; import com.casic.missiles.modular.system.service.IOceanService; import com.casic.missiles.modular.system.utils.Constant; import com.casic.missiles.modular.system.utils.HttpRequestHelper; +import com.casic.missiles.modular.system.utils.HttpUtils; import okhttp3.*; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; /** * 洋流数据信息 服务实现类 @@ -42,78 +46,37 @@ /** * 获取洋流数据Token * */ - JSONObject tokenObject = new JSONObject(); - try { - tokenObject.put("appId", Constant.OCEAN_APPID); - tokenObject.put("appKey", Constant.OCEAN_APP_KEY); - } catch (JSONException e) { - e.printStackTrace(); - } - Request tokenRequest = new Request.Builder() - .url("http://api.meteo.open.ninecosmos.cn/us/users/open/token") - .post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), tokenObject.toJSONString())) - .build(); - Call tokenCall = HttpRequestHelper.HTTP_CLIENT.newCall(tokenRequest); - try { - Response response = tokenCall.execute(); - ResponseBody tokenBody = response.body(); - if (tokenBody != null) { - String tokenResult = tokenBody.string(); - if ("".equals(tokenResult)) { + + Map params = new HashMap<>(); + params.put("appId", Constant.OCEAN_APPID); + params.put("appKey", Constant.OCEAN_APP_KEY); + String res = HttpUtils.sendPost("http://api.meteo.open.ninecosmos.cn/us/users/open/token", params, null, new OceanHttpHeaderHandler()); + if (StrUtil.isNotEmpty(res)) { + /** + * 解析token + * */ + JSONObject tokenJson = JSON.parseObject(res); + JSONObject dataObject = tokenJson.getJSONObject("data"); + String token = dataObject.getString("token"); + /** + * 封装请求参数 + * */ + Map dataParams = new HashMap<>(); + dataParams.put("lon", lng+""); + dataParams.put("lat", lat+""); + dataParams.put("date", date); + dataParams.put("hour", days); + dataParams.put("days", hour); + String oceanData = HttpUtils.sendPost("http://api.meteo.open.ninecosmos.cn/mr/netcdf/meteo/ytx", dataParams, token, new OceanHttpHeaderHandler()); + if (SUCCESS_CODE.equals(getOceanCode(oceanData))) { + OceanDetailModel remoteData = JSON.parseObject(oceanData, new TypeReference() { + }); + if (remoteData == null) { return null; } - /** - * 解析token - * */ - JSONObject tokenJson = JSON.parseObject(tokenResult); - JSONObject dataObject = tokenJson.getJSONObject("data"); - String token = dataObject.getString("token"); - /** - * 封装请求参数 - * */ - JSONObject resultObject = new JSONObject(); - try { - resultObject.put("lon", lng); - resultObject.put("lat", lat); - resultObject.put("date", date); - resultObject.put("hour", days); - resultObject.put("days", hour); - } catch (JSONException e) { - e.printStackTrace(); - } - /** - * 获取洋流数据 - * */ - Request resultRequest = new Request.Builder() - .addHeader("Authorization", token) - .url("http://api.meteo.open.ninecosmos.cn/mr/netcdf/meteo/ytx") - .post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), resultObject.toJSONString())) - .build(); - Call resultCall = HttpRequestHelper.HTTP_CLIENT.newCall(resultRequest); - try { - Response resultResponse = resultCall.execute(); - ResponseBody resultBody = resultResponse.body(); - if (resultBody != null) { - String oceanData = resultBody.string(); - /** - * 解析洋流数据返回给前端 - * */ - if (SUCCESS_CODE.equals(getOceanCode(oceanData))) { - OceanDetailModel remoteData = JSON.parseObject(oceanData, new TypeReference() { - }); - if (remoteData == null) { - return null; - } - return new OceanDetailDTO(remoteData); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - return null; + return new OceanDetailDTO(remoteData); } - } catch (IOException e) { - e.printStackTrace(); + } return null; } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 71c67c0..f370cc1 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -30,6 +30,11 @@ provided + com.casic + casic-http + ${ext.version} + + org.springframework.boot spring-boot-starter-web ${boot.version} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java new file mode 100644 index 0000000..ae105f8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/handler/OceanHttpHeaderHandler.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.handler; + +import cn.hutool.core.util.StrUtil; +import org.apache.http.client.methods.HttpRequestBase; + +/** + * 默认请求header + * + * @author lwh + */ +public class OceanHttpHeaderHandler extends DefaultHttpHeaderHandler { + @Override + public void setHeader(HttpRequestBase base, String token) { + if (StrUtil.isNotEmpty(token)) { + base.addHeader("Authorization", token); + } + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java index 567e912..29b6af2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/OceanServiceImpl.java @@ -1,18 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.casic.missiles.modular.system.dto.OceanDetailDTO; +import com.casic.missiles.modular.system.handler.OceanHttpHeaderHandler; import com.casic.missiles.modular.system.model.OceanDetailModel; import com.casic.missiles.modular.system.service.IOceanService; import com.casic.missiles.modular.system.utils.Constant; import com.casic.missiles.modular.system.utils.HttpRequestHelper; +import com.casic.missiles.modular.system.utils.HttpUtils; import okhttp3.*; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; /** * 洋流数据信息 服务实现类 @@ -42,78 +46,37 @@ /** * 获取洋流数据Token * */ - JSONObject tokenObject = new JSONObject(); - try { - tokenObject.put("appId", Constant.OCEAN_APPID); - tokenObject.put("appKey", Constant.OCEAN_APP_KEY); - } catch (JSONException e) { - e.printStackTrace(); - } - Request tokenRequest = new Request.Builder() - .url("http://api.meteo.open.ninecosmos.cn/us/users/open/token") - .post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), tokenObject.toJSONString())) - .build(); - Call tokenCall = HttpRequestHelper.HTTP_CLIENT.newCall(tokenRequest); - try { - Response response = tokenCall.execute(); - ResponseBody tokenBody = response.body(); - if (tokenBody != null) { - String tokenResult = tokenBody.string(); - if ("".equals(tokenResult)) { + + Map params = new HashMap<>(); + params.put("appId", Constant.OCEAN_APPID); + params.put("appKey", Constant.OCEAN_APP_KEY); + String res = HttpUtils.sendPost("http://api.meteo.open.ninecosmos.cn/us/users/open/token", params, null, new OceanHttpHeaderHandler()); + if (StrUtil.isNotEmpty(res)) { + /** + * 解析token + * */ + JSONObject tokenJson = JSON.parseObject(res); + JSONObject dataObject = tokenJson.getJSONObject("data"); + String token = dataObject.getString("token"); + /** + * 封装请求参数 + * */ + Map dataParams = new HashMap<>(); + dataParams.put("lon", lng+""); + dataParams.put("lat", lat+""); + dataParams.put("date", date); + dataParams.put("hour", days); + dataParams.put("days", hour); + String oceanData = HttpUtils.sendPost("http://api.meteo.open.ninecosmos.cn/mr/netcdf/meteo/ytx", dataParams, token, new OceanHttpHeaderHandler()); + if (SUCCESS_CODE.equals(getOceanCode(oceanData))) { + OceanDetailModel remoteData = JSON.parseObject(oceanData, new TypeReference() { + }); + if (remoteData == null) { return null; } - /** - * 解析token - * */ - JSONObject tokenJson = JSON.parseObject(tokenResult); - JSONObject dataObject = tokenJson.getJSONObject("data"); - String token = dataObject.getString("token"); - /** - * 封装请求参数 - * */ - JSONObject resultObject = new JSONObject(); - try { - resultObject.put("lon", lng); - resultObject.put("lat", lat); - resultObject.put("date", date); - resultObject.put("hour", days); - resultObject.put("days", hour); - } catch (JSONException e) { - e.printStackTrace(); - } - /** - * 获取洋流数据 - * */ - Request resultRequest = new Request.Builder() - .addHeader("Authorization", token) - .url("http://api.meteo.open.ninecosmos.cn/mr/netcdf/meteo/ytx") - .post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), resultObject.toJSONString())) - .build(); - Call resultCall = HttpRequestHelper.HTTP_CLIENT.newCall(resultRequest); - try { - Response resultResponse = resultCall.execute(); - ResponseBody resultBody = resultResponse.body(); - if (resultBody != null) { - String oceanData = resultBody.string(); - /** - * 解析洋流数据返回给前端 - * */ - if (SUCCESS_CODE.equals(getOceanCode(oceanData))) { - OceanDetailModel remoteData = JSON.parseObject(oceanData, new TypeReference() { - }); - if (remoteData == null) { - return null; - } - return new OceanDetailDTO(remoteData); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - return null; + return new OceanDetailDTO(remoteData); } - } catch (IOException e) { - e.printStackTrace(); + } return null; } diff --git a/pom.xml b/pom.xml index 80d830f..b4fe593 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ 2.0.0.alpha 2.0.0.alpha + 2.0.0.alpha