java执行post请求,并获取json结果组成想要的内容存放本地txt中

大概就是这样一个post
然后用户的需求是:
1、分析这个接口,实现
1.1 获取到sentence, score字段值
1.2 这个score值如果是<0.5,打印分值 情感倾向:0
这个score值如果是>=0.5,打印分值 情感倾向:1
输出文本中的结果为:

这里用到了httpclient,要用到的jar包,下载的gz包解压把lib里的jar包build到eclipse项目中去(此步省)
链接:https://pan.baidu.com/s/1DXp2GLwLg7cNOzKviqAeBw
提取码:odf6
链接:https://pan.baidu.com/s/1YodlzLMQ8RcWbCniJrvxPA
提取码:lxa3
直接上代码吧,都是我拼凑起来的:
package desi; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List; import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames; import net.sf.json.JSONObject; public class PostURL {
/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
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;
}
//把字符串一行行写入文件
public static 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();
}
}
//post请求获取结果
/**
* sendUrl (远程请求的URL)
* param (远程请求参数)
* JSONObject (远程请求返回的JSON)
*/ private static String sendPostUrl(String url, String param){
PrintWriter out = null;
BufferedReader in = null;
JSONObject jsonObject = null;
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.fromObject(result);
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();
jieguo=sentence+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;
} public static void main(String[] args) {
String httpposturl="http://47.107.235.26:8383/pconline-bds-emotion/api/v1.0/emoa";
String result_path="E:\\360downloads\\pos_result.txt";
List<String> sList=readFile02("E:\\360downloads\\pos.txt");
for (String param : sList) {
String res = sendPostUrl(httpposturl,"sentence="+param);
System.out.println(res);
writeTxt(res,result_path);
} } }
java执行post请求,并获取json结果组成想要的内容存放本地txt中的更多相关文章
- java后台发送请求并获取返回值(续)
在java后端发送请求给另一个平台,从而给前端实现 "透传"的过程中,出现:数据请求到了并传到了前端,但是控制台打印时中文显示Unicode码而前端界面中中文显示不出来!!!开始怀 ...
- java执行cmd命令并获取输出结果
1.java执行cmd命令并获取输出结果 import java.io.BufferedReader; import java.io.InputStreamReader; import org.apa ...
- NodeJs本地搭建服务器,模拟接口请求,获取json数据
最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...
- MDNS DDoS 反射放大攻击——攻击者假冒被攻击者IP向网络发送DNS请求,域名为“_services._dns-sd._udp.local”,这将引起本地网络中所有提供服务的主机都向被攻击者IP发送DNS响应,列举网络中所有服务
MDNS Reflection DDoS 2015年3月,有报告叙述了mDNS 成为反射式和放大式 DDoS 攻击中所用媒介的可能性,并详述了 mDNS 反射式攻击的原理和相应防御方式.Q3,Akam ...
- Java发送Http请求并获取状态码
通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...
- AJAX 跨域请求 - JSONP获取JSON数据
Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...
- 【转】AJAX 跨域请求 - JSONP获取JSON数据
来源:http://justcoding.iteye.com/blog/1366102/ Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流 ...
- 用Java发起HTTP请求与获取状态码(含状态码列表)
转自:https://blog.csdn.net/xyw591238/article/details/51072697 在使用Java请求Web程序比如访问WebService接口时,通常需要先判断访 ...
- 通过HttpClient发起Get请求,获取Json数据,然后转为java数据,然后批量保存数据库;
Json转java所需Jar包: commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.5.jar,comm ...
随机推荐
- Linux——awk命令解析
awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK 程 ...
- BZOJ4267 : 小强的颜色
首先剔除$1$号心情不能到达的无用心情,然后采用分割法进行DFA的最小化. 每次遍历所有集合,将集合中和集合中第一个心情行为或者转移所在集合不同的心情放入新集合中. 最后按字典序依次给每个集合编号即可 ...
- BKDR Hash 函数实现
K&R一书中提出的BKDR Hash算法,这里给出C函数实现,实际用的时候分布比较好而且实现简单.唯一不明白的就是为什么选择131这种模式的数字作为种子,隐隐有沃尔夫勒姆31号自动机的似曾相识 ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习7
#include <iostream>using namespace std;struct Pizza{ char company[50]; float diameter; float w ...
- .net缓存的应用研究(读篇)
目前,缓存主要有两种技术:分布式缓存和进程级别的内容缓存.两种缓冲具体的差异就不废话了. 1.在技术上 数据库降压的最好方式就是缓存.在缓存的性能上,进程级别的内存缓存性能有明显优于分布式缓存,内存缓 ...
- 3ds max学习笔记(十四)-- (FFD自由变形)
FFD长方体,FFD圆柱体: 栗子2:通过对长方体进行自由编辑,松弛,和涡轮平滑的操作实现抱枕模型,抱枕表面的凹凸效果,可以通过贴图的方式来实现:
- Python 调用图像融合API
Python 调用图像融合API 本文记录使用Python,调用腾讯AI开放平台的图像融合API.官网给出的Demo用的是PHP,博主作为Python的粉丝,自然想用它来和『最好的』的语言一较高下,顺 ...
- 关于EL表达式的学习总结
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- fontawesome图标字体库组件在服务器上显示不出来图标的解决
这个组件在我所开发的网站中被大量使用,为网站增色不少.在本地测试的时候所有图标都能显示出来,可一到服务器上就显示不出来了.网上查列出了可能的原因.其一,IIS没有注册字体类型.经过检查,不存在这个问题 ...
- Android_Printservice_API_部分翻译
文件夹 * package android.printservice * public abstract class PrintService * public abstract class Prin ...