curl命令java_上curl java 模拟http请求
最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接。
java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次开发太费时间。
于是google之。
最后 得出两种解决的方法:
一是使用HTTP4J。
该开源项目使用socket方式。模拟请求。记录时间戳,基本满足需求。对于header自己定义等细节,可在此基础上比較方便的二次开发。
仅仅是。当中有一些bug须要修复,如https链接时获取不到ssl时间等。使用该项目的风险在于不稳定和不可控性。
稍作修改后的http4j代码。
二是使用curl。
google之,curl本身没有对java的支持。由第三份提供了binding用来使用curl。可能是笔者能力有限,未能成功在windows编译它。
google也没有找到相关javacurl.dll的资源下载。
最后不得不放弃。选择使用命令行的模式操作curl。
java 使用curl命令 demo
package com.netbirdtech.libcurl.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) {
String []cmds = {"curl", "-i", "-w", "状态%{http_code};DNS时间%{time_namelookup};"
+ "等待时间%{time_pretransfer}TCP 连接%{time_connect};发出请求%{time_starttransfer};"
+ "总时间%{time_total}","http://www.baidu.com"};
ProcessBuilder pb=new ProcessBuilder(cmds);
pb.redirectErrorStream(true);
Process p;
try {
p = pb.start();
BufferedReader br=null;
String line=null;
br=new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=br.readLine())!=null){
System.out.println("\t"+line);
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
curl命令java_上curl java 模拟http请求相关推荐
- curl命令java_让 Bug 无处藏身,Java 线上问题排查思路、常用工具
本文总结了一些常见的线上应急现象和对应排查步骤和工具.分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱. 只不过这里先提示一下.在线上应急过程中要记住,只有一个总体 ...
- curl命令java_从Java调用curl命令
curl -k -XPOST 'https://localhost:9200/myweb/myrep/**input_string**/_update' -d '{"doc":{& ...
- linux curl t上传文件,curl 命令行上传文件
现在nginx大行其道,一般在机器上装个nginx 简答配置下就可以做upload用了.主要需求是开发那边需要运维这边投递一些app_log和一些history log.下面讲解下直接用curl命令上 ...
- java模拟HTTP请求(集合了网上搜来的各种)
Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之. 注意:通过BufferedReade ...
- JAVA模拟HTTP请求中GET/POST方式
package com.nxt.datacenter.utils;/*** 文件描述** @author: maomi* @date: 2019/5/31*/import java.io.Buffer ...
- Java模拟http请求
Java实现http请求主要有3种方式:URLConnection.HttpURLConnection.HttpClient 一 URLConnection 抽象类,属于Java发送http请 ...
- Java模拟Http请求远程接口
最近业务需要请求远程API接口,并返回相应的数据,同步到公司的服务器.因此编写了下面两个方法,主要是用Java.net.URL模拟http请求,主要写了POST和GET两个方法. 1.GET请求 /* ...
- Windows中使用curl命令报错curl post [globbing] unmatched close brace/bracket in column 67
原因window的command.exe不支持单引号,所以要处理一下命令:先转义双引号,然后把单引号改为双引号, 比如,命令: curl -X POST --data '{"jsonrpc& ...
- 关于命令行上执行java命令的错误分析 - Could not find or load main class
成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题. 这都归功于Eclise通过工程(project)和包(package)把这些管理好. 但偶尔在命令行下编译和运 ...
最新文章
- js根据经纬度取随机附近经纬度
- iBatis.Net实现返回DataTable和DataSet对象
- nginx location配置详解
- 基于github和hexo搭建博客 本地hexo博客搭建
- python结束多线程_如何中断/停止/结束挂起的多线程python程序
- VOSviewer初步学习
- 鸿蒙电视rom,鸿蒙系统刷机包
- 什么是ROE、ROA和ROS?衡量企业盈利能力的比率有哪些?
- android 脚本运行程序,用android app运行脚本
- rpm 如何安装mysql_如何使用rpm安装MySQL
- C语言中结构体所占内存空间
- 之前用Delphi随手写的软键盘SoftKeyBoard
- Android多窗口模式(分屏模式)
- python爬今日头条组图_python 爬虫抓取今日头条街拍图片
- 数据结构 | 合并两个长度分别为m和n的有序表,最坏情况下需要比较m+n-1次
- 服务器e5系列和e5v4系列,至强E5-2600v4系列CPU一览表
- 市占率第一,是vivo的起点还是终点?
- 为什么要用企业邮箱?企业邮箱能给公司带来哪些好处?
- 2020/08/28 周末计划
- Java+MySQL实现药品销售管理系统
热门文章
- 服务器物理内存总是九十几,服务器物理内存使用率90以上
- 使用echarts时,鼠标首次移入屏幕会闪动,屏幕会出现滚动条
- html笔记(五)2D、3D、3D动画
- 关于DJANGO MODELS的个人理解和RELATED_NAME的使用
- BZOJ.1023.[SHOI2008]cactus仙人掌图(DP)
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)
- 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别
- JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...
- 关于eclipse的indigo版中文注释时字体太小的问题(转)
- PHP+七牛云存储上传图片代码片段