这东西啊,本身是无用的,但是要是移植就有用。

package util;
import java.util.Properties; public class HttpProxyConfiger {
public static void configProxy(){
Properties prop=System.getProperties(); prop.setProperty("proxySet","true");
prop.setProperty("http.proxyHost","192.168.xx.xx");
prop.setProperty("http.proxyPort","port"); }
}

工具类中包括很多种方法,读写txt,发post请求等。

package util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.apache.commons.lang.StringEscapeUtils; import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.sun.org.apache.bcel.internal.generic.NEW; import dao.DataBaseDao;
import dao.impl.DataBaseDaoImpl;
import entity.AiDataBase;
import entity.AiResultBai;
import entity.AiResultFs; public class Tools {
static Date datetime=new Date();
static Timestamp ts = new Timestamp(datetime.getTime());
//读取本地文件pos.txt
public static List<String> readFile02(String path) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<String> list = new ArrayList<String>();
try {
FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = "";
while ((line = br.readLine()) != null) {
// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选
list.add(line);
}
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 分析fs数据结果时用
* @param path
* @return
*/
public static List<String> readFiletofs(String path) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<String> list = new ArrayList<String>();
try {
FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = "";
while ((line = br.readLine()) != null) {
// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选
list.add(line.replace("+", "%2B"));
}
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
} /*
* 专门给百度去用的,把一份大文件拆分成几个小文件
* 本地读取13W基础数据,拆分成每1W条存入一个list执行一次分析
*/
public static Map readFilechaifen(String path) {
Map map=new HashMap();
//存放总数的text
List<String> listall=new ArrayList<String>();
try { FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = "";
while ((line = br.readLine()) != null) {
// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选
listall.add(line.replace("+", "%2B"));
}
br.close();
isr.close();
fis.close(); } catch (Exception e) {
e.printStackTrace();
}
//每读取一样,index加一,到了index % 5000 == 0 的时候,就用一个新的list
//把if里面的代码放到后面来,list定义在for外面, 在你这个if里面再次new一下
//就好了
List<String> listnew=null;
for(int i=0;i<=listall.size();i++) {
if(i%5000==0) {
listnew=new ArrayList<String>();
listnew.add(listall.get(i)); }
listnew.add(listall.get(i));
}
return map;
} public static List<AiDataBase> readFiletoadb(String path) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<AiDataBase> adblist = new ArrayList<AiDataBase>();
try {
FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = "";
//int i=0;
while ((line = br.readLine()) != null) { //i++;
//System.out.println(i+"==========="+line);
// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选
if(line.contains("+")) {
line=line.replace("+", "%2B");
//System.out.println("替换+后=="+line);
}
if(line.contains("'")) {
line=line.replaceAll("'", "");
//System.out.println("替换'后=="+line);
}
if(line.contains("\\")){
line=line.replace("\\", "");
}
AiDataBase aiDataBase=new AiDataBase();
aiDataBase.setText(line.replaceAll(" ", "").trim());
aiDataBase.setCreate_time(ts);
adblist.add(aiDataBase);
} br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return adblist;
} /*public static void main(String[] args) {
List<AiDataBase> adblist =readFiletoadb("E:\\360downloads\\111\\data_jd.txt");
System.out.println(adblist.size());
}*/
//读取本地文件result_fs.txt
public static List<AiResultFs> readFileforFs(String path) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<AiResultFs> list = new ArrayList<AiResultFs>();
try {
FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
DataBaseDao dbd=new DataBaseDaoImpl();
String line = "";
int j=0;
while ((line = br.readLine())!=null) {
if(line.contains("…")) {
line=StringEscapeUtils.escapeHtml(line);
}
if(line.contains("+")) {
line=line.replace("+", "%2B");
//System.out.println("替换+后=="+line);
}
/*if(line.contains("'")) {
line=line.replaceAll("'", "");
//System.out.println("替换'后=="+line);
}*/
j++; if((dbd.getIdByText1(line.split("===")[0].trim().replaceAll(" ", "")))>0){
AiResultFs arf=new AiResultFs();
System.out.println(j+line);
arf.setData_base_id(dbd.getIdByText1(line.split("===")[0].trim().replaceAll(" ", "")));
arf.setSentiment(Integer.parseInt(((((line.split("==="))[1]).split(":"))[1])));
arf.setScore(Double.parseDouble(((((line.split("==="))[2]).split(":"))[1])));
arf.setCreate_time(ts);
list.add(arf);
}else {
System.out.println(line+"不存在");
} //} }
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
} return list;
}
/**
* 给aibaidu.java用的,把13W的数据拆成5000一个list然后进行分析
* @param paramlist
* @return
*/
public static Map<Integer, List<String>> getmapchafen(List<String> paramlist){
List<String> listnew=new ArrayList<String>();
Map<Integer , List<String>> lMap=new HashMap<Integer , List<String>>();
for(int i=0;i<paramlist.size();i++) {
if(i==0 ||i%5000==0) {
listnew=new ArrayList<String>();
listnew.add(paramlist.get(i));
lMap.put(i+1, listnew); }else {
//listnew=new ArrayList<String>();
listnew.add(paramlist.get(i));
} }
System.out.println(lMap.size());
return lMap;
}
//读取本地文件result_baidu.txt,存储为List<AiResultBai>
public static List<AiResultBai> readFileforbaidu(String path) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<AiResultBai> list = new ArrayList<AiResultBai>();
try {
FileInputStream fis = new FileInputStream(path);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
DataBaseDao dbd=new DataBaseDaoImpl();
String line = "";
int j=0;
while ((line = br.readLine())!=null) {
if(!line.equals("")) {
if(line.length()>=256) {
line.substring(0, 256);
}
if(line.contains("+")) {
line=line.replace("+", "%2B");
//System.out.println("替换+后=="+line);
}
/*if(line.contains("'")) {
line=line.replaceAll("'", "''");
//System.out.println("替换'后=="+line);
}*/
/*if(line.contains("…")) {
line=StringEscapeUtils.escapeHtml(line);
}*/
j++;
System.out.println(j+line);
;
AiResultBai arBai=new AiResultBai();
if((dbd.getIdByText1(((line.split("===")[0]).trim().replaceAll(" ", ""))))>0) {
arBai.setData_base_id(dbd.getIdByText1((line.split("===")[0]).trim().replaceAll(" ", "")));
arBai.setSentiment(Integer.parseInt(((((line.split("==="))[1]).split(":"))[1])));
arBai.setPositive_prob(Double.parseDouble(((((line.split("==="))[2]).split(":"))[1])));
arBai.setNegative_prob(Double.parseDouble(((((line.split("==="))[3]).split(":"))[1])));
arBai.setCreate_time(ts);
list.add(arBai);
}else {
System.out.println(line+"不存在");
} } }
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
} return list;
} /*public static void main(String[] args) {
String string="物流很快,手机壳也很精美,自己真的超喜欢啊……但河马嘴巴上的灰渍是脏";
StringEscapeUtils.escapeHtml(string);
System.out.println(string);
//System.out.println(list.size());
}*/
//把字符串一行行写入文件
public void writeTxt(String result,String resultfilepath) {
//写入中文字符时解决中文乱码问题
try {
FileOutputStream fos = new FileOutputStream(new File(resultfilepath),true);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(result + "\t\n"); //注意关闭的先后顺序,先打开的后关闭,后打开的先关闭
bw.close();
osw.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//2个文本文件一行一行对比
public static List<String> compare(String path1,String path2) {
// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
List<String> strlist = new ArrayList<String>();
try {
FileInputStream fis = new FileInputStream(path1);
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr); FileInputStream fis1 = new FileInputStream(path2);
InputStreamReader isr1 = new InputStreamReader(fis1, "UTF-8");
BufferedReader br1 = new BufferedReader(isr1);
String line1 = "";
String line2="";
while (((line1 = br.readLine()) != null)&&((line2 = br1.readLine()) != null)) {
// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选
if(!((line1.trim().replace(" ", "")).equals(line2.trim().replace(" ", "")))) {
strlist.add((line1.split("==="))[0].trim()+"=="+(line1.split("==="))[1]+"=="+(line2.split("==="))[1]);
} }
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return strlist;
}
//post请求获取结果
/**
*  sendUrl (远程请求的URL)
*  param (远程请求参数)
*  JSONObject (远程请求返回的JSON)
*/ public String sendPostUrl(String url,String param){
PrintWriter out = null;
BufferedReader in = null;
Gson gson = new Gson();
JsonParser parser=new JsonParser();
String result = "";
List<String> reslutlist=new ArrayList<String>();
String qingganqingxiang="";
String jieguo="";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流(设置请求编码为UTF-8)
out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 获取请求返回数据(设置返回数据编码为UTF-8)
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
// System.out.println(jsonObject);
//分析结果,得出字符串 装了好几台机子了,一直都用这个===情感倾向:2===分值:0.632563
if((Double.parseDouble(jsonObject.get("score").toString()))>0.5){
qingganqingxiang="===2";
}
else {
qingganqingxiang="===0";
}
String score="==="+jsonObject.get("score").toString();
String sentence=jsonObject.get("sentence").toString();
System.out.println("json获取的值"+sentence);
jieguo=sentence+qingganqingxiang+score;
// jieguo=param+qingganqingxiang+score;
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
} return jieguo;
}
/**
* 改变post方法,最终获取的是一个list<airesultfs>
* @param url
* @param paramlist
* @return
*/
public static List<AiResultFs> sendPostUrl1(String url,List<String> paramlist){
Date datetime=new Date();
Timestamp ts = new Timestamp(datetime.getTime());
PrintWriter out = null;
BufferedReader in = null;
Gson gson = new Gson();
JsonParser parser=new JsonParser();
DataBaseDao dBaseDao=new DataBaseDaoImpl(); List<AiResultFs> reslutlist=new ArrayList<AiResultFs>();
for (String param : paramlist) {
try {
HttpProxyConfiger.configProxy();
//System.out.println(param);
URL realUrl = new URL(url);
// 打开和URL之间的连接
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
//URLConnection conn = realUrl.openConnection();
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流(设置请求编码为UTF-8)
out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));
// 发送请求参数
out.print("sentence="+param);
// flush输出流的缓冲
out.flush();
// 获取请求返回数据(设置返回数据编码为UTF-8)
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
String result = "";
while ((line = in.readLine()) != null) {
result += line;
} JsonObject jsonObject =parser.parse(result.replace("'", "''")).getAsJsonObject();
//System.out.println("jsonObject=="+jsonObject);
//分析结果,得出字符串 装了好几台机子了,一直都用这个===情感倾向:2===分值:0.632563
int sentiment;
if((Double.parseDouble(jsonObject.get("score").toString()))>0.5){
sentiment=2;
}
else {
sentiment=0;
}
double score=Double.parseDouble(jsonObject.get("score").toString());
String sentence=jsonObject.get("sentence").toString();
System.out.println("param========"+param);
int database_id=dBaseDao.getIdByText1(param.trim().replace(" ", ""));
System.out.println(database_id);
if(database_id>0) {
AiResultFs arf=new AiResultFs();
arf.setData_base_id(database_id);
arf.setSentiment(sentiment);
arf.setScore(score);
arf.setCreate_time(ts);
reslutlist.add(arf);
}
//System.out.println("结束");
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
} return reslutlist;
} }

java使用代理发post请求的更多相关文章

  1. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

  2. JAVA 年老代收集器 第10节

    JAVA 年老代收集器 第10节 上一章我们讲了新生代的收集器,那么这一章我们要讲的就是关于老年代的一些收集器.老年代的存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算法很明显不能适应该区域 ...

  3. JAVA 年轻代收集器 第九节

    JAVA 年轻代收集器  第九节 继续上一章所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程.如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低. 因此我 ...

  4. 通过java.net.URLConnection发送HTTP请求的方法

    一.前言 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求. Java有原生的API可用于发送HTTP请求,即java.net.URL.java.net.UR ...

  5. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 >>>>>>>>>>>>>>&g ...

  6. java动态代理源码解析

    众所周知,java动态代理同反射原理一直是许多框架的底层实现,之前一直没有时间来分析动态代理的底层源码,现结合源码分析一下动态代理的底层实现 类和接口 java动态代理的主要类和接口有:java.la ...

  7. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求   Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...

  8. java 模拟浏览器发送post请求

    java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...

  9. 通过java.net.URLConnection发送HTTP请求(原生、爬虫)

    目录 1. 运用原生Java Api发送简单的Get请求.Post请求 2. 简单封装 3. 简单测试 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求.Ja ...

随机推荐

  1. AC自动机相关Fail树和Trie图相关基础知识

    装载自55242字符串AC自动机专栏 fail树 定义 把所有fail指针逆向,这样就得到了一棵树 (因为每个节点的出度都为1,所以逆向后每个节点入度为1,所以得到的是一棵树) 还账- 有了这个东西, ...

  2. Charles——前端必备模拟后端数据

    Charles--前端必备模拟后端数据 现在都是前后端分离开发了,前端开发者经常会遇到一个问题如何模拟后端数据来进行开发调试,在这里给大家介绍一个前端神器--Charles. 安装 安装就不赘述了,直 ...

  3. Win7系统 mstsc远程桌面连接失败,提示“您的凭据不工作” 或者“无法连接到远程计算机”的问题。

    WIN7 mstsc远程桌面连接其他电脑,提示"您的凭据不工作xxxxxxx"的问题. 或者提示: 本机通过mstsc远程桌面连接服务器,我们按照下面的步骤来逐一排查: 本机配置以 ...

  4. 修改mybatis plus Generator模板生成字段注释枚举常量

    修改mybatis plus Generator模板生成字段注释枚举常量 本文基于最新的mybatis-plus 3.0.1版本源码修改,如果使用其它版本,处理方式也类似,主要是生成Entity的Fr ...

  5. [P4994]终于结束的起点 (递推)

    终于结束的起点 终于写下句点 终于我们告别 终于我们又回到原点 …… 一个个 OIer 的竞赛生涯总是从一场 NOIp 开始,大多也在一场 NOIp 中结束,好似一次次轮回在不断上演. 如果这次 NO ...

  6. 2017.08.08【NOIP提高组】模拟赛B组

    Summary 今天的题目也不算很难,唯一一道没做出来的题目是以前做过的,太不应该了. Problem T1 油滴扩展 题目大意 给你一堆点,你准备要在这么多的点当中滴油.你可以自己安排顺序,每次滴油 ...

  7. ES6_入门(2)_const命令

    1. //只读常量,一旦声明,常量的值就不能改变. const PI=3.1415; console.log(PI); PI=6;//报错:es6.html:186 Uncaught TypeErro ...

  8. java中继承和多态的理解

    继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...

  9. 【贪心】经营与开发 @upc_exam_5500

    目录 经营与开发 @upc_exam_5500 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE 经营与开发 @upc_exam_5500 PROBLEM 题 ...

  10. flask 跨域问题

    在Flask开发RESTful后端时,前端请求会遇到跨域的问题.下面是解决方法.Python版本:3.5.1 下载flask_cors包 pip install flask-cors使用flask_c ...