curl-to-javaJava 實(shí)現(xiàn) PHP 中的 curl 庫(kù)
php curl lib for java implement php curl類庫(kù)的java版實(shí)現(xiàn) 支持php curl類庫(kù)的以下方法
curl_init
curl_setopt
curl_exec
curl_getinfo
curl_errno
curl_error
其中設(shè)置curl_setopt時(shí)支持以下參數(shù),含義與php中一致
CURLOPT_CONNECTTIMEOUT
CURLOPT_TIMEOUT
CURLOPT_HTTP_VERSION
CURLOPT_RETURNTRANSFER
CURLOPT_POST
CURLOPT_URL
CURLOPT_POSTFIELDS
CURLOPT_SSL_VERIFYPEER
CURLOPT_SSLCERT
CURLOPT_HTTPHEADER
CURLOPT_FOLLOWLOCATION
CURLOPT_MAXREDIRS
CURLOPT_CUSTOMREQUEST
根據(jù)java特性拓展了curl_setopt的以下參數(shù)
JAVA_RET_STREAM //返回java的stream對(duì)象
JAVA_POOLCONN_TIMEOUT //httpclient連接池獲取連接的超時(shí)時(shí)間
JAVA_POOL_MAXTOTAL //httpclient連接池最大連接數(shù)
JAVA_POOL_MAXPERROUTE
JAVA_POOL_TIMETOLIVE //httpclient連接池中連接有效時(shí)間
demo示例
public Object curl(String url, Object postData, String method) {
CurlLib curl = CurlFactory.getInstance("default");
ch = curl.curl_init();
curl.curl_setopt(ch, CurlOption.CURLOPT_CONNECTTIMEOUT, 1000);//建立連接超時(shí)時(shí)間s
curl.curl_setopt(ch, CurlOption.CURLOPT_TIMEOUT, 5000);//請(qǐng)求超時(shí)時(shí)間s
curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYPEER, false);//不檢查https證書
curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYHOST, false);//不檢查https證書
String postDataStr = "key1=v1";
curl.curl_setopt(ch, CurlOption.CURLOPT_CUSTOMREQUEST, "POST");
curl.curl_setopt(ch, CurlOption.CURLOPT_POSTFIELDS, postDataStr);
curl.curl_setopt(ch, CurlOption.CURLOPT_URL, "https://xxxx.com/yyy");
Object html = curl.curl_exec(ch);
Object httpCode = curl.curl_getinfo(ch, CurlInfo.CURLINFO_HTTP_CODE);
if (httpCode != null && 200 == Integer.valueOf(httpCode.toString())) {
return null;
}
return html;
}評(píng)論
圖片
表情
