httpclient的get和post
pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.5</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
class代码
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.testng.annotations.Test;
import java.io.*;
/**
* Created by win7 on 2016/7/28.
*/
public class HttpClient {
@Test
public void test_get() {
String url = "http://ssov1.59iedu.com/login?TARGET=http://med.ihbedu.com:80/gateway/web/sso/auth&js&callback=loginThen&1470491151264&nocache=1470491171451";
this.httpGet(url);
}
@Test
public void test_post() {
String postUrl = "http://test.ihbedu.com:1457/gateway/web/home/registered/createUserAccount?_q_=1458452488928";
try {
String userNameOrPhone = "15988880018";
JSONObject parsers = new JSONObject();
parsers.put("phone", userNameOrPhone);
parsers.put("password", "000000");
parsers.put("picValidateCode", "c4kx");
parsers.put("remoteValidateCode", "success");
parsers.put("phoneValidateCode", "003023");
parsers.put("yesIDo", true);
JSONArray provinceArray = new JSONArray();
JSONObject provinceInfoObject = new JSONObject();
provinceInfoObject.put("id", "110000");
provinceInfoObject.put("municipalities", true);
provinceInfoObject.put("name", "北京市");
provinceInfoObject.put("regionPath", "/110000");
provinceArray.put(provinceInfoObject);
parsers.put("province", provinceArray);
parsers.put("schoolId", "122");
JSONArray schoolArray = new JSONArray();
JSONObject schoolInfoObject = new JSONObject();
schoolInfoObject.put("areaPath", "/110000");
schoolInfoObject.put("available", true);
schoolInfoObject.put("id", "122");
schoolInfoObject.put("name", "北京(其他)");
schoolInfoObject.put("platformId", "2c9180e5520a5e70015214fb2849000a");
schoolInfoObject.put("platformVersionId", "2c9180e5520a6063015214fc062d0006");
schoolInfoObject.put("projectId", "-1");
schoolInfoObject.put("subProjectId", "-1");
schoolArray.put(schoolInfoObject);
parsers.put("school", schoolArray);
parsers.put("name", userNameOrPhone);
parsers.put("sex", "1");
parsers.put("registerSource", 1);
parsers.put("registerType", 11);
parsers.put("accountType", 1);
this.httpPost(postUrl, parsers);
} catch (JSONException e) {
e.printStackTrace();
}
}
public String httpGet(String url) {
String responseStr = null;
CloseableHttpClient httpClient = HttpClients.createDefault();//建立httpclient
HttpGet httpGet = new HttpGet(url);//建立httpget
try {
CloseableHttpResponse response = httpClient.execute(httpGet);//执行get请求,并结果保存
HttpEntity httpEntity = response.getEntity();//将保存的response转为实体
try {
if (response.getStatusLine().getStatusCode() == 200) {
responseStr = EntityUtils.toString(httpEntity);
} else
responseStr = "error";
} finally {
this.writeTxt("src\\main\\resources\\log\\response.txt", responseStr);//把response写入txt中
EntityUtils.consume(httpEntity);//关闭实体
response.close();//关闭response
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
httpClient.close();//关闭httpclient
} catch (IOException e) {
e.printStackTrace();
}
}
return responseStr;
}
public void httpPost(String url, JSONObject parser) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
if (parser != null) {
StringEntity stringEntity = new StringEntity(parser.toString(), "utf-8");//构造字符串数据
stringEntity.setContentEncoding("utf-8");//设置内容编码格式
stringEntity.setContentType("application/json");//设置内容类型
httpPost.setEntity(stringEntity);//设置请求数据
}
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
this.writeTxt("src\\main\\resources\\log\\response.txt", EntityUtils.toString(response.getEntity()));//把response写入txt中
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
httpClient.close();//关闭httpclient
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 信息写入txt中
*
* @param path 路径
* @param content 写入的内容
*/
public void writeTxt(String path, String content) {
try {
FileWriter fileWriter = new FileWriter(path, true);
fileWriter.write(content);
fileWriter.flush();//关闭流
fileWriter.close();//关闭资源
} catch (IOException e) {
e.printStackTrace();
}
}
}
httpclient的get和post的更多相关文章
- HttpClient的替代者 - RestTemplate
需要的包 ,除了Spring的基础包外还用到json的包,这里的数据传输使用json格式 客户端和服务端都用到一下的包 <!-- Spring --> <dependency> ...
- 关于微软HttpClient使用,避免踩坑
最近公司对于WebApi的场景使用也越来越加大了,随之而来就是Api的客户端工具我们使用哪个?我们最常用的估计就是HttpClient,在微软类库中命名空间地址:System.Net.Http,是一个 ...
- 使用HttpClient的优解
新工作入职不满半周,目前仍然还在交接工作,适应环境当中,笔者不得不说看别人的源码实在是令人痛苦.所幸今天终于将大部分工作流畅地看了一遍,接下来就是熟悉框架技术的阶段了. 也正是在看源码的过程当中,有一 ...
- Java的异步HttpClient
上篇提到了高性能处理的关键是异步,而我们当中许多人依旧在使用同步模式的HttpClient访问第三方Web资源,我认为原因之一是:异步的HttpClient诞生较晚,许多人不知道:另外也可能是大多数W ...
- 揭秘Windows10 UWP中的httpclient接口[2]
阅读目录: 概述 如何选择 System.Net.Http Windows.Web.Http HTTP的常用功能 修改http头部 设置超时 使用身份验证凭据 使用客户端证书 cookie处理 概述 ...
- C#中HttpClient使用注意:预热与长连接
最近在测试一个第三方API,准备集成在我们的网站应用中.API的调用使用的是.NET中的HttpClient,由于这个API会在关键业务中用到,对调用API的整体响应速度有严格要求,所以对HttpCl ...
- HttpClient调用webApi时注意的小问题
HttpClient client = new HttpClient(); client.BaseAddress = new Uri(thisUrl); client.GetAsync("a ...
- HttpClient相关
HTTPClient的主页是http://jakarta.apache.org/commons/httpclient/,你可以在这里得到关于HttpClient更加详细的信息 HttpClient入门 ...
- Atitit.http httpclient实践java c# .net php attilax总结
Atitit.http httpclient实践java c# .net php attilax总结 1. Navtree>> net .http1 2. Httpclient理论1 2. ...
- 使用httpclient发送get或post请求
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...
随机推荐
- 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析
URL编码问题 问题描述 使用 Tomcat 开发一个 Java Web 项目的时候,相信大多数人都遇到过url出现中文乱码的情况,绝大多数人为了避免出现这种问题,所以设计 url 一般都会尽量设计成 ...
- 创建表空间时ora-01119和ora-27040的处理
创建时出错: SQL> create tablespace gaotbs logging datafile '/u01/app/datafiles/gaodata1.dbf' ...
- 3992: [SDOI2015]序列统计
3992: [SDOI2015]序列统计 链接 分析: 给定一个集和s,求多少个长度为n的序列,满足序列中每个数都属于s,并且所有数的乘积模m等于x. 设$f=\sum\limits_{i=0}^{n ...
- idea ssm项目出现日志中文乱码,封装的json中的msg字段中文乱码(但是json封装的bean中的字段不乱码)等其他各种项目下的中文乱码解决方案
开头划重点!(敲黑板):rebuild和mvn package的循环往复好几次的操作是解决这个问题的最主要的方法! 经过多次试验,发现这样做就可以正常显示中文了 我说为什么有时候乱码,有时候中文正常, ...
- python爬虫之scrapy框架介绍
一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等) ...
- 【JUC源码解析】ScheduledThreadPoolExecutor
简介 它是一个线程池执行器(ThreadPoolExecutor),在给定的延迟(delay)后执行.在多线程或者对灵活性有要求的环境下,要优于java.util.Timer. 提交的任务在执行之前支 ...
- ORM框架学习之EF
首先推荐一篇很好的EF文章翻译,可以系统的学习一遍. <Entity Framework 6 Recipes>中文翻译系列 EF使用体会 优点: 可以省去Ado.net复杂的管道连接代码. ...
- Winfrom Panel Scroll End 的实现
场景:在一个panel里面有非常多的自定义绘制的控件,在拖拉滚动条的时候,控件的画面上有残影 不知道大家遇到过这种情况没,一直做web的winform经验太少,有更好的解决办法请贡献 首先放出我的解决 ...
- Discuz x3.2利用阿里云cdn处理https访问亲测教程
第一步配置cdn和https 1.首先去阿里云.腾讯云.七牛云等申请免费https证书 2.虚拟主机是不能直接支持https的,需要cdn处理后才可以,并且端口是80 3.开启cdn加速处理,(买一个 ...
- C# 连接MongoDB,含用户验证
配置文件中链接地址:mongodb://test:123456@192.168.168.186:9999/temp 读取配置文件: /// <summary> /// 构造函数 /// & ...