httpclient开启代理,获取java中请求的url
背景:在httpclent做post或者get请求时,请求返回的数据总是和预想的不一致,但是有不知道怎么排查问题,经同事说httpclient可以设置代理,就可以获取请求前数据的一些问题,帮助我排查问题,使用代理很方便,就3句话
实现方式
- /**
- *
- * @测试点: 发送get请求,并且设置cookies
- * @验证点: TODO(这里用一句话描述这个方法的作用)
- * @param @param
- * url
- * @param @param
- * cookies @备注: void
- * @author zhangjun
- * @date 2017年11月7日
- * @修改说明
- */
- public String httpGet(String url, String cookies) {
- String result = null;
- HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http"); //添加代理,IP为本地IP 8888就是fillder的端口
- CloseableHttpClient httpClient = HttpClients.createDefault();//添加代理
- try {
- // 创建httpGet
- HttpGet httpGet = new HttpGet(url);
- System.out.println("获取的url为:"+url);
- httpGet.setHeader("Connection", "keep-alive");
- httpGet.addHeader(new BasicHeader("Cookie", cookies));
- //代理
- RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
- httpGet.setConfig(config);
- System.out.println("executing request:" + httpGet.getURI());
- // 执行get请求
- CloseableHttpResponse response = httpClient.execute(httpGet);
- try {
- int code = response.getStatusLine().getStatusCode();
- System.out.println("返回的状态码:" + code);
- // 获取响应实体
- HttpEntity entity = response.getEntity();
- // 打印响应状态
- System.out.println(response.getStatusLine());
- if (entity != null) {
- System.out.println("Response content length" + entity.getContentLength());
- // 打印响应内容
- result = EntityUtils.toString(entity);
- // 打印响应头
- System.out.println("Response content" + entity.getContent());
- System.out.println("Response Contentype" + entity.getContentType());
- System.out.println("Response ContenEncoding" + entity.getContentEncoding());
- }
- System.out.println("--------------");
- Header[] hr = response.getAllHeaders();
- for (int i = 0; i < hr.length; i++) {
- Header header1 = hr[i];
- System.out.println("头部内容:" + header1);
- }
- } finally {
- response.close();
- }
- } catch (ClientProtocolException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- // 关闭连接,释放资源
- try {
- httpClient.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return result;
- }
httpclient开启代理,获取java中请求的url的更多相关文章
- Django自动获取项目中的全部URL
import re from collections import OrderedDict from django.conf import settings from django.utils.mod ...
- 获取HTML中所有图片的 URL
/// <summary> /// 获取HTML中所有图片的 URL /// </summary> /// <param name="strHtml" ...
- Nginx应用-Location路由反向代理及重写策略 请求转发-URL匹配规则 NGINX Reverse Proxy
NGINX Docs | NGINX Reverse Proxy https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ ...
- 记录-java执行请求的URL
package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...
- Java中常用的url签名防篡改方法
实现方式:Md5(url+key) 的方式进行的. 1.key可以是任意的字符串,然后“客户端”和“服务器端”各自保留一份,千万不能外泄. 2.请求的URL 例如: name=lxl&age ...
- Java中常见的URL问题及解决方案
URL无处不在,不过似乎开发人员并没有真正地理解它们,因为在Stack Overflow上经常看到有人在问如何正确的创建一个URL.想知道URL语法是如何工作的,可以看下兄弟连教育总结的这篇文章,非常 ...
- 【PHP5.3+】获取getCurrentUrl()中 的地址url
1.在控制器中调用其他 扩展或者类 的方法时候,getCurrentUrl()方法 是获取的[当前控制器下方法]的路由,不是[其他 扩展或者类 方法]的路由!!! 2.getCurrentUrl()方 ...
- JS获取地址栏中的链接URL参数
function getUrlParam(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&am ...
- 获取SpringBoot中所有的url和其参数
获取所有url和方法的对应关系 1 @Data 2 public class Param { 3 4 /** 5 * 字段名称 6 */ 7 private String name; 8 9 /** ...
随机推荐
- rsync常见故障
1.1 rsync客户端执行rsync命令错误: 客户端的错误现象: [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41: ...
- UBoot添加命令的方法
1. 具体实现步骤 ① 在./common文件夹下新建cmd_led.c,并在此文件中添加如下内容 #include <common.h> #include <command.h&g ...
- pl/sql declare loop if
-- 1.判断表是否存在,如果存在则drop表 -- 2.创建表 -- 3.插入1W条数据 -- 4.每1K条commit一次 declare v_table ):='STUDENT'; --表名 v ...
- WindowsMTU修改
MTU是英文Maximum Transmission Unit的缩写,意为"最大传输单位".也就是通过TCP/IP协议所传输的数据包最大有多少字节,对于网速有极大的影响, MTU并 ...
- Nmap工具使用
Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...
- js网页瀑布流布局
瀑布流布局思路: 1.css样式,图片的父级div样式设置为定位或者浮动 2.找出图片父级元素(box)和最外元素(main):获取box的宽度和main的宽,然后计算main容器一行能容纳多少个bo ...
- 关于C语言读取文件时候多读一行
梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是[!feof(fp)]的错!!! while (!feof(fp)) { fgets(buffer, , fp); j++; } 像这样 ...
- Host 'XXX' is not allowed to connect to this MySQL server解决方案
如何允许远程连接mysql数据库呢,操作如下: 首先登录账号 mysql -uroot -p 使用mysql用户 use mysql 如果报此类错:ERROR 1820 (HY000): You mu ...
- Ajax原理实现
jQuery的ajax实现原理: // 1.创建一个XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 2.打开请求 xhr.open('METHO ...
- 二叉排序树思想及C语言实现
转自: http://blog.chinaunix.net/uid-22663647-id-1771796.html 1.二叉排序树的定义 二叉排序树(Binary Sort Tree)又称二叉查找( ...