httpclient发送get请求
/**
* 获取httpclient的请求url地址
*/
public static String getUrl(){
String url = "http://"+map.get("server")+":"+map.get("server_port")+map.get("heartbeat_path");
System.out.println(url);
StringBuilder params = new StringBuilder(StringUtils.EMPTY);
for (String key : map.keySet()) {
if("timestamp".equals(key)){
try {
params=params.append(key).append("=").append(URLEncoder.encode(map.get(key).toString(), "UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else if("heartbeat_path".equals(key)){
try {
params=params.append(key).append("=").append(URLEncoder.encode(map.get(key).toString(), "utf-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else if("cmd".equalsIgnoreCase(key)){
boolean isEndError=map.get(key).toString().endsWith("error!!!");
if("mac error!!!".equalsIgnoreCase(map.get(key).toString())||isEndError){
params = params.append(key).append("=").append("")
.append("&");
}else{
params = params.append(key).append("=").append(map.get(key))
.append("&");
}
}else{
params = params.append(key).append("=").append(map.get(key))
.append("&");
}
}
if (!"".equals(params)) {
url = url + "?" + params.toString();
}
url = url.substring(0, url.length() - 1);
return url;
} /**
* 发送httpclient请求,并根据服务器端的返回数据更新设备状态
*/
public static void httpGet(String url) {
//记录当前状态
HashMap<String, Object> temp=new HashMap<String,Object>();
for(Iterator it = map.keySet().iterator() ; it.hasNext();){
String key = it.next().toString();
temp.put(key, map.get(key));
}
Helper.mapSession=temp;
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(20000).setConnectTimeout(20000).build();
HttpGet httpget = new HttpGet(url);
httpget.addHeader("Accept", "*/*");
httpget.addHeader("Connection", "keep-alive");
httpget.addHeader("Accept-Encoding", "gzip, deflate");
CloseableHttpResponse response;
try {
response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
String params=EntityUtils.toString(entity);
String[] paramsAry=params.split("\\|");
if(paramsAry.length==4){ map.put("status", paramsAry[3]);
String[] cmdAry=paramsAry[2].split("@@");
System.out.println("response={"+params+"}");
map.put("rt", "");
if(!"".equals(cmdAry[0].trim())&&cmdAry[0]!=null){
if(cmdAry[0].endsWith("error!!!")){
map.put("cmd", "");
map.put("status", 0);
Helper.flag=false;//没有指令的情况
return;
}
reciveTime=new Date().getTime();
//map.put("timestamp", new Date());
if(!("".equals(cmdAry[0])||null==cmdAry[0])){
Helper.flag=true;//有指令的情况
}
map.put("cmd", cmdAry[0]); if(cmdAry.length>1){
for(int i=1;i<cmdAry.length;i++){
String[] param=cmdAry[i].split("=");
if("sensor_indoor_temp".equalsIgnoreCase(param[0])){
double indoorTemp=Double.parseDouble(map.get("indoor_temp").toString());
double value=Double.parseDouble(param[1]);
map.put("indoor_temp", indoorTemp+value);
}else if("sensor_outdoor_temp".equalsIgnoreCase(param[0])){
double indoorTemp=Double.parseDouble(map.get("outdoor_temp").toString());
double value=Double.parseDouble(param[1]);
map.put("outdoor_temp", indoorTemp+value);
}
map.put(param[0], param[1]);
}
return;
}
}else{
map.put("cmd", "");
map.put("status", 0);
Helper.flag=false;//没有指令的情况
}
}else{
System.out.println("response={"+params+"}");
} }
response.close();
httpClient.close();
} catch (IOException e) {
Helper.startProgram=false;
Helper.flag=false;
runDeviceSimulator();
//e.printStackTrace();
}
}
httpclient发送get请求的更多相关文章
- 【JAVA】通过HttpClient发送HTTP请求的方法
HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 ...
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
- Httpclient发送json请求
一.Httpclient发送json请求 public String RequestJsonPost(String url){ String strresponse = null; try ...
- .net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包
前言: 通过Fiddler抓取浏览器请求数据,相信大家已经都会用了,我们知道Fiddler是通过在本机计算器添加一个默认的代理服务器来实现的抓包数据的,端口号为:8888. 其实当我们打开Fiddl ...
- java httpclient发送json 请求 ,go服务端接收
/***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOEx ...
- 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL
这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...
- httpclient发送request请求时设置header和timeout
package com.xxx.xxx.common; import java.io.BufferedReader; import java.io.InputStreamReader; import ...
- 使用httpclient发送post请求与get请求
最近因为项目的要求,需要使用httpclient来发送请求.但是查阅了许多博客,大家发送请求的方法各不相同.原因是因为httpclient的jar包的不同版本,其内部方法也不相同.因此抛开具体用到的j ...
随机推荐
- docker guide
centos docker community version install: yum -y install docker # install docker systemctl start dock ...
- Maven实战读书笔记(五):聚合与继承
Maven的聚合特性能够把项目的各个模块聚合在一起构建,而继承特性则能够帮助抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性. 5.1 聚合 Maven聚合也称多模块 ...
- 清除oracle归档日志
清除oracle归档日志 1. 连接oracle报如下错误 ORA-00257: archiver error. Connect internal only, until freed 产生原因:出现O ...
- python计算圆面积
#coding=gbk #coding=utf-8 #-*- coding: UTF-8 -*- #调用math包处理相关的运算 import math #圆半径 r = 2 #计算圆面积π*r*r与 ...
- 自定义ngCloak
场景: 一个非常复杂的表单页面,页面有5个标签,第五个标签中又有5个标签,也就是说一共有9个标签,每个标签中都有一个表单,表单之间相互关联.所有表单项(包括复合的),有80多个数据.全部东西写在一个h ...
- Python数据结构--树遍历算法
''' 遍历是访问树的所有节点的过程,也可以打印它们的值. 因为所有节点都通过边(链接)连接,所以始终从根(头)节点开始. 也就是说,我们不能随机访问树中的一个节点. 这里介绍三种方式来遍历一棵树 - ...
- 谷歌浏览器修改CSS和js后同步保存到文件中 (译)
本文标题:谷歌浏览器修改CSS和js后同步保存到文件中. 文本作者:魔芋铃. 英文原文:http://www.stephensaw.me/google-chrome-devtools-source-m ...
- BNU 13174 Substring Frequency
3C. Substring Frequency Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format: %lld ...
- git学习(一)----基础知识
git是世界上最好用最先进的版本管理系统,那么什么是版本管理系统呢,百度上是这样说的: 举个例子,当你写毕业论文的时候,灵感爆发了修改或者删除了一些内容,但是你还想保留之前的版本,就需要另存为不同的w ...
- SPOJ FAVDICE 数学期望
题目大意: 一个有n面的色子抛掷多少次能使所有面都能被抛到过,求期望值 总面数为n,当已经抛到过 i 个不同面时,我们抛出下一个不同面的概率为 (n-i)/n,那么抛的次数为 n/(n-i) 将所有抛 ...