日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

curl命令java_上curl java 模拟http请求

發(fā)布時(shí)間:2023/12/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 curl命令java_上curl java 模拟http请求 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近,我的項(xiàng)目要求java模擬http請(qǐng)求,獲得dns解決 tcp處理過(guò)的信息特定的連接。

java api提供urlConnection apache提供的httpClient都不能勝任該需求,二次開發(fā)太費(fèi)時(shí)間。

于是google之。

最后 得出兩種解決的方法:

一是使用HTTP4J。

該開源項(xiàng)目使用socket方式。模擬請(qǐng)求。記錄時(shí)間戳,基本滿足需求。對(duì)于header自己定義等細(xì)節(jié),可在此基礎(chǔ)上比較方便的二次開發(fā)。

僅僅是。當(dāng)中有一些bug須要修復(fù),如https鏈接時(shí)獲取不到ssl時(shí)間等。使用該項(xiàng)目的風(fēng)險(xiǎn)在于不穩(wěn)定和不可控性。

稍作修改后的http4j代碼。

二是使用curl。

google之,curl本身沒(méi)有對(duì)java的支持。由第三份提供了binding用來(lái)使用curl。可能是筆者能力有限,未能成功在windows編譯它。

google也沒(méi)有找到相關(guān)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", "狀態(tài)%{http_code};DNS時(shí)間%{time_namelookup};"

+ "等待時(shí)間%{time_pretransfer}TCP 連接%{time_connect};發(fā)出請(qǐng)求%{time_starttransfer};"

+ "總時(shí)間%{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();

}

}

}

總結(jié)

以上是生活随笔為你收集整理的curl命令java_上curl java 模拟http请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。