diff --git a/code/java/天气灾害预警/disaster_warning.iml b/code/java/天气灾害预警/disaster_warning.iml
index c49b959..a81e62d 100644
--- a/code/java/天气灾害预警/disaster_warning.iml
+++ b/code/java/天气灾害预警/disaster_warning.iml
@@ -32,5 +32,15 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/java/天气灾害预警/disaster_warning.ipr b/code/java/天气灾害预警/disaster_warning.ipr
index f390bf0..32c76fe 100644
--- a/code/java/天气灾害预警/disaster_warning.ipr
+++ b/code/java/天气灾害预警/disaster_warning.ipr
@@ -21,6 +21,8 @@
+
+
diff --git a/code/java/天气灾害预警/src/main/java/com/cpic/xim/wechat/officalAccount/PushMessage.java b/code/java/天气灾害预警/src/main/java/com/cpic/xim/wechat/officalAccount/PushMessage.java
index 41dc318..6ca9db6 100644
--- a/code/java/天气灾害预警/src/main/java/com/cpic/xim/wechat/officalAccount/PushMessage.java
+++ b/code/java/天气灾害预警/src/main/java/com/cpic/xim/wechat/officalAccount/PushMessage.java
@@ -1,10 +1,18 @@
package com.cpic.xim.wechat.officalAccount;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.*;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.HttpURLConnection;
+
+
public class PushMessage
{
@@ -22,24 +30,97 @@ public class PushMessage
String notifyMessage )
{
+ //设置推送内容
WechatOfficalAccountMessageParameter param = new WechatOfficalAccountMessageParameter();
- //param.setUrl( url );
param.setFirst( title );
param.setKeyword1( notifyType );
param.setKeyword1Color( "#ff000000" );
param.setKeyword2( notifyMessage );
- ObjectMapper mapper = new ObjectMapper();
+ //转换成json
+ ObjectMapper mapper = null;
+ String json = null;
try
{
- String json = mapper.writeValueAsString( param );
+ mapper = new ObjectMapper();
+ mapper.setSerializationInclusion( JsonInclude.Include.NON_NULL );
+
+ json = mapper.writeValueAsString( param );
+
+ System.out.println( json );
}
catch ( JsonProcessingException error )
{
-
+ error.printStackTrace();
}
+
+ //推送数据
+ URL url = null;
+ HttpURLConnection connection = null;
+
+ StringBuffer result = new StringBuffer();
+ OutputStreamWriter out = null;
+ BufferedReader in = null;
+
+ try
+ {
+ url = new URL( wechatOfficalAccountURL );
+ connection = (HttpURLConnection) url.openConnection();
+
+ connection.setRequestMethod( "POST" );
+ connection.setRequestProperty( "accept", "*/*" );
+ connection.setRequestProperty( "Connection", "Keep-Alive" );
+ connection.setRequestProperty( "Content-Type", "application/json" );
+ connection.setDoInput( true );
+ connection.setDoOutput( true );
+ connection.connect();
+
+ out = new OutputStreamWriter( connection.getOutputStream(), "UTF-8" );
+ out.write( json );
+ out.flush();
+
+ in = new BufferedReader( new InputStreamReader( connection.getInputStream() ) );
+
+ String line = in.readLine();
+
+ while ( line != null )
+ {
+ result.append( line );
+
+ line = in.readLine();
+ }
+ }
+ catch ( Exception error )
+ {
+ error.printStackTrace();
+ }
+ finally
+ {
+ try
+ {
+ if ( in != null )
+ {
+ in.close();
+ }
+
+ if ( out != null )
+ {
+ out.close();
+ }
+
+ if ( connection != null )
+ {
+ connection.disconnect();
+ }
+ }
+ catch ( Exception error )
+ {
+ error.printStackTrace();
+ }
+ }
+
}
}
diff --git a/code/java/天气灾害预警/src/test/java/com/cpic/xim/wechat/officalAccount/PushMessageTest.java b/code/java/天气灾害预警/src/test/java/com/cpic/xim/wechat/officalAccount/PushMessageTest.java
new file mode 100644
index 0000000..f74520a
--- /dev/null
+++ b/code/java/天气灾害预警/src/test/java/com/cpic/xim/wechat/officalAccount/PushMessageTest.java
@@ -0,0 +1,24 @@
+package com.cpic.xim.wechat.officalAccount;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class PushMessageTest
+{
+ @Test
+ public void pushNotifyMessage()
+ {
+ String url = "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage";
+
+ try
+ {
+ PushMessage.PushNotifyMessage( url, "警报", "警报标题", "警报内容!" );
+ }
+ catch ( Exception error )
+ {
+ fail("测试失败!");
+ }
+ }
+}
\ No newline at end of file
diff --git a/文档/example.java b/文档/example.java
index ad179ac..7e3711a 100644
--- a/文档/example.java
+++ b/文档/example.java
@@ -2,57 +2,54 @@
* @Author: Kane
* @Date: 2022-04-18 11:37:33
* @LastEditors: Kane
- * @LastEditTime: 2022-04-18 11:41:09
+ * @LastEditTime: 2022-04-18 15:58:34
* @FilePath: \undefinedd:\develop\产险厦门分公司项目\天气灾害预警\文档\example.java
- * @Description:
- *
- * Copyright (c) ${2022} by Kane, All Rights Reserved.
- */
-import org.apache.commons.httpclient.HttpClient;
+
+import org.apache.httpcomponents.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
public class HttpUtils {
- public static String sendPostWithJson(String url, String jsonStr, HashMap headers) {
- // 返回的结果
- String jsonResult = "";
+ public static String sendPostWithJson(String url, String jsonStr, HashMap headers) {
+ // 返回的结果
+ String jsonResult = "";
- try {
- HttpClient client = new HttpClient();
- // 连接超时
- client.getHttpConnectionManager().getParams().setConnectionTimeout(3*1000);
- // 读取数据超时
- client.getHttpConnectionManager().getParams().setSoTimeout(3*60*1000);
- client.getParams().setContentCharset("UTF-8");
+ try {
+ HttpClient client = new HttpClient();
- PostMethod postMethod = new PostMethod(url);
-
- postMethod.setRequestHeader("content-type", headers.get("content-type"));
-
- // 非空
- if (null != jsonStr && !"".equals(jsonStr))
- {
- StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, headers.get("content-type"), "UTF-8");
- postMethod.setRequestEntity(requestEntity);
- }
+ // 连接超时
+ client.getHttpConnectionManager().getParams().setConnectionTimeout(3 * 1000);
+ // 读取数据超时
+ client.getHttpConnectionManager().getParams().setSoTimeout(3 * 60 * 1000);
+ client.getParams().setContentCharset("UTF-8");
- int status = client.executeMethod(postMethod);
+ PostMethod postMethod = new PostMethod(url);
- if (status == HttpStatus.SC_OK) {
- jsonResult = postMethod.getResponseBodyAsString();
- } else {
- throw new RuntimeException("接口连接失败!");
- }
+ postMethod.setRequestHeader("content-type", headers.get("content-type"));
- } catch (Exception e) {
- throw new RuntimeException("接口连接失败!");
- }
- return jsonResult;
- }
+ // 非空
+ if (null != jsonStr && !"".equals(jsonStr)) {
+ StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, headers.get("content-type"),
+ "UTF-8");
+ postMethod.setRequestEntity(requestEntity);
+ }
- public static void main(String[] args)
- {
+ int status = client.executeMethod(postMethod);
+
+ if (status == HttpStatus.SC_OK) {
+ jsonResult = postMethod.getResponseBodyAsString();
+ } else {
+ throw new RuntimeException("接口连接失败!");
+ }
+
+ } catch (Exception e) {
+ throw new RuntimeException("接口连接失败!");
+ }
+ return jsonResult;
+ }
+
+ public static void main(String[] args) {
String requestUrl = "http://localhost:8070/test/rz/server/rzxx/at_VaildToken.do";
String jsonStr = "{\"name\":\"张三\"}";
@@ -60,11 +57,155 @@ public class HttpUtils {
headers.put("content-type", "application/json");
// 发送post请求
- String resultData = HttpUtils.sendPostWithJson(requestUrl, jsonStr,headers);
-
+ String resultData = HttpUtils.sendPostWithJson(requestUrl, jsonStr, headers);
+
// 并接收返回结果
System.out.println(resultData);
}
-
-
+
+}
+
+ /**
+ *
+ * @author : cjd
+ *
+ * @description : post接口 返回结果字符串
+ *
+ * @params : [url, param]
+ *
+ * @param url 请求接口
+ *
+ * @param param 需要的json字符串
+ *
+ * @return :java.lang.String
+ *
+ * @date : 17:31 2018/8/1
+ *
+ */
+
+ public static String sendPost(String url, String param)
+ {
+ OutputStreamWriter out = null;
+ BufferedReader in = null;
+
+ String result = "";
+
+ try {
+ URL realUrl = new URL(url);
+ HttpURLConnection conn = null; // 打开和URL之间的连接
+
+ conn = (HttpURLConnection) realUrl.openConnection(); // 发送POST请求必须设置如下两行
+ conn.setDoOutput(true);
+ conn.setDoInput(true);
+ conn.setRequestMethod("POST"); // POST方法
+
+ // 设置通用的请求属性
+ conn.setRequestProperty("accept", "*/*");
+ conn.setRequestProperty("connection", "Keep-Alive");
+ conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+ conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+ conn.connect(); // 获取URLConnection对象对应的输出流
+
+ out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); // 发送请求参数
+ out.write(param); // flush输出流的缓冲
+ out.flush(); // 定义BufferedReader输入流来读取URL的响应
+
+ in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+
+ String line;
+ while ((line = in.readLine()) != null)
+ {
+ result += line;
+ }
+ }
+ catch (Exception e)
+ {
+ System.out.println("发送 POST 请求出现异常!" + e);
+
+ e.printStackTrace();
+
+ } // 使用finally块来关闭输出流、输入流
+ finally {
+ try {
+ if (out != null)
+ {
+ out.close();
+ }
+
+ if (in != null)
+ {
+ in.close();
+ }
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ return result;
+
+}
+
+
+public String postMethod(String url,String param){
+ // 结果值
+ StringBuffer rest=new StringBuffer();
+
+ HttpURLConnection conn=null;
+ OutputStream out=null;
+ BufferedReader br=null;
+
+ try {
+ // 创建 URL
+ URL restUrl = new URL(url);
+ // 打开连接
+ conn= (HttpURLConnection) restUrl.openConnection();
+ // 设置请求方式为 POST
+ conn.setRequestMethod("POST");
+ conn.setRequestProperty("Connection","keep-Alive");
+ // 设置接收文件类型
+// conn.setRequestProperty("Accept","application/json");
+ //设置发送文件类型
+ /**
+ 这里注意 传递JSON数据的话 就要设置
+ 普通参数的话 就要注释掉
+ */
+ conn.setRequestProperty("Content-Type","application/json");
+ // 输入 输出 都打开
+ conn.setDoOutput(true);
+ conn.setDoInput(true);
+ //开始连接
+ conn.connect();
+
+ // 传递参数 流的方式
+ out=conn.getOutputStream();
+ out.write(param.getBytes());
+ out.flush();
+
+ // 读取数据
+ br=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
+ String line=null;
+ while (null != (line=br.readLine())){
+ rest.append(line);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ // 关闭所有通道
+ try {
+ if (br!=null) {
+ br.close();
+ }
+ if (out!=null) {
+ out.close();
+ }
+ if (conn!=null) {
+ conn.disconnect();
+ }
+ } catch (Exception e2) {
+ e2.printStackTrace();
+ }
+ }
+ return rest.toString();
}