当前位置: 首页 > news >正文

地产行业如何利用Java实现精准营销

在当今竞争激烈的地产市场中,如何有效触达潜在客户并促进销售转化,成为众多房企关注的焦点。106短信平台作为一种精准的营销工具,在地产行业中发挥着越来越重要的作用。

支持免费对接试用:乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台icon-default.png?t=N7T8http://yun.loktong.com/login/register/0c61bafb77 

 

package com.ljs;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.Console;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.MalformedParameterizedTypeException;
import java.net.URL;
import java.net.URLConnection;
import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;import javax.lang.model.element.VariableElement;
import javax.management.monitor.MonitorSettingException;
import javax.print.attribute.standard.DateTimeAtCompleted;import org.junit.Test;public class MyTest {public static void main(String[] args) throws ParseException {long timestamp = System.currentTimeMillis();System.out.println(timestamp);String url = "http://www.lokapi.cn/smsUTF8.aspx"; String beforSign = "action=sendtemplate&username=18586975869&password="+getMD5String("18586975869")+"&token=389c1a49&timestamp="+timestamp;String postData = "action=sendtemplate&username=18586975869&password="+getMD5String("18586975869")+"&token=389c1a49&templateid=CF2D56FC&param=18586975869|666666&rece=json&timestamp="+timestamp+"&sign="+getMD5String(beforSign);String result = sendPost(url,postData); System.out.println(result);}  public static String sendPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(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 static String getMD5String(String rawString){    //用来计算MD5的函数String[] hexArray = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};try{MessageDigest md = MessageDigest.getInstance("MD5");md.update(rawString.getBytes());byte[] rawBit = md.digest();String outputMD5 = " ";for(int i = 0; i<16; i++){outputMD5 = outputMD5+hexArray[rawBit[i]>>>4& 0x0f];outputMD5 = outputMD5+hexArray[rawBit[i]& 0x0f];}return outputMD5.trim();}catch(Exception e){System.out.println("计算MD5值发生错误");e.printStackTrace();}return null;}/*** 生成秘钥* * @param tm* @param key* @return*/public static String createSign(TreeMap<String, String> tm, String key) {StringBuffer buf = new StringBuffer(key);for (Map.Entry<String, String> en : tm.entrySet()) {String name = en.getKey();String value = en.getValue();if (!"sign".equals(name) && !"param".equals(name) && value != null && value.length() > 0 && !"null".equals(value)) {buf.append(name).append('=').append(value).append('&');}}String _buf = buf.toString();return _buf.substring(0, _buf.length() - 1);}/*** 将文件转成base64 字符串* @param path文件路径* @return  * * @throws Exception*/public static String encodeBase64File(String path) throws Exception {File file = new File(path);;FileInputStream inputFile = new FileInputStream(file);byte[] buffer = new byte[(int) file.length()];inputFile.read(buffer);inputFile.close();//return new BASE64Encoder().encode(buffer);
return "";}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Winform -- ​c#:SynchronizationContext
  • vue3+ts封装一个uniapp的自动滚动列表,实现看板效果
  • 国内超声波清洗机哪个品牌好?质量好的超声波清洗机推荐
  • 026集——在旧式编码与 Unicode 之间转换(C# 编程指南)——C#学习笔记
  • 【算法】C++贪心算法解题(单调递增数字、坏了的计算器、合并区间)
  • PostgreSQL 中的 `generate_series` 函数使用
  • MAT:一款针对MSSQL服务器的安全检测与审计工具
  • 【C++】C++智能指针详解
  • VUE3 使用 <transition> 实现组件切换的过渡效果
  • 【日常记录-Linux】WebDriver
  • 如何打造抗冲击的超级电容器?用啥材料好?
  • 大数据技术概述
  • U盘常规数据恢复深度解析:原因、方案与预防策略
  • 文件包含PHP伪协议利用方法
  • c++(list)
  • 【技术性】Search知识
  • github指令
  • Git学习与使用心得(1)—— 初始化
  • gulp 教程
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • python_bomb----数据类型总结
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SQLServer插入数据
  • Vue--数据传输
  • 闭包--闭包之tab栏切换(四)
  • 大主子表关联的性能优化方法
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 浮现式设计
  • 前端_面试
  • 深入浅出Node.js
  • 项目实战-Api的解决方案
  • 一些关于Rust在2019年的思考
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云移动端播放器高级功能介绍
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #控制台大学课堂点名问题_课堂随机点名
  • %@ page import=%的用法
  • (1)Nginx简介和安装教程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (LeetCode) T14. Longest Common Prefix
  • (NSDate) 时间 (time )比较
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (不用互三)AI绘画工具应该如何选择
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (接口自动化)Python3操作MySQL数据库
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .net core docker部署教程和细节问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET的微型Web框架 Nancy