Java 实现 PHP 中的 curl 库 curl-to-java

Apache-2.0
Java 查看源码»
跨平台
2019-07-19
杰睿宁

php curl lib for java implement php curl类库的java版实现 支持php curl类库的以下方法

curl_init
curl_setopt
curl_exec
curl_getinfo
curl_errno
curl_error

其中设置curl_setopt时支持以下参数,含义与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

根据java特性拓展了curl_setopt的以下参数

JAVA_RET_STREAM //返回java的stream对象
JAVA_POOLCONN_TIMEOUT //httpclient连接池获取连接的超时时间
JAVA_POOL_MAXTOTAL //httpclient连接池最大连接数
JAVA_POOL_MAXPERROUTE
JAVA_POOL_TIMETOLIVE //httpclient连接池中连接有效时间

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);//建立连接超时时间s
        curl.curl_setopt(ch, CurlOption.CURLOPT_TIMEOUT, 5000);//请求超时时间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;
    }
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Elasticsearch7.3.0 在CentOS 7.6安装配置

Elasticsearch7.3.0 在CentOS 7.6安装配置: 1. 先安装JDK: a.查看yum中管理的可用的JDK软件包列表: yum search java | grep -i --color JDK b.选择合适版本,安装jdk: java-1.8.0-openjdk...

08/06 13:40
9
0
jenkins git maven 自动部署

准备工作 CentOS Jenkins Maven GIT Java 1.8 jdk 下载解压 tar xzvf xxx.xxx maven 下载解压 tar xzvf xxx.xxx git 密钥配置 ssh-keygen -t rsa -C "555555@qq.com" ssh git@192.168.1.5 g...

2018/06/26 16:12
93
0
Java Tomcat vs PHP CLI Server 性能对比

测试环境: Ubuntu 14.04 with i5-3230M Tomcat 8.0.5 with 64bit jre1.7.0_55 PHP 5.5.8 with Zend OPcache v7.0.3-dev 测试脚本: 显示当前服务器时间 Java Tomcat: t.jsp <%@ page session=...

2014/09/22 10:05
4.8K
1
Kafka连接器深度解读之JDBC源连接器

在现实业务中,Kafka经常会遇到的一个集成场景就是,从数据库获取数据,因为关系数据库是一个非常丰富的事件源。数据库中的现有数据以及对该数据的任何更改都可以流式传输到Kafka主题中,在这...

03/12 14:02
2K
5
wget和curl下载JDK

3638 有时候我们需要在服务器上安装Oracle JDK,这时候我们发现直接复制网页上面的地址是不能下载的 以下载jdk-8u101-linux-i586.tar.gz为例,右键查看到的地址为http://download.oracle.co...

2017/10/29 11:45
19
0
libcurl在android下的移植、编译与测试以及java接口的封装

curl是利用URL语法在命令行方式下工作的文件传输工具 它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。 curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT...

2013/03/05 21:09
9.3K
0
ubuntu系统下安装jdk

开篇 :1 openjdk 和 jdk 的区别 是什么 2 怎么利用WGET下载文件并保存到指定目录 一般的是 wget +网址 而要让档案自动储存到指令的目录下,则需要借用-P这个参数, 可以使用以下的指令 wget...

2017/10/29 11:43
3
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部