php-JAVA中的cURL等效项

我的任务是为开源cURL应用程序编写身份验证组件。 我们有一个内部认证小部件,它使用29944892777504450450。我有一些示例php代码,该代码访问widget,该代码使用cURL处理传输。

我的问题是,是否有cURL到JAVA的端口,或更妙的是,什么基本软件包可以使我足够接近以完成任务?

更新:

简而言之,我想在JAVA中复制的代码:

$cp = curl_init();

$my_url = "https://" . AUTH_SERVER . "/auth/authenticate.asp?pt1=$uname&pt2=$pass&pt4=full";

curl_setopt($cp, CURLOPT_URL, $my_url);

curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($cp);

curl_close($cp);

希思,我认为您的方向正确,我认为我最终将使用HttpsURLConnection,然后从响应中选择我需要的内容。

6个解决方案

62 votes

省略异常处理:

HttpURLConnection con = (HttpURLConnection) new URL("https://www.example.com").openConnection();

con.setRequestMethod("POST");

con.getOutputStream().write("LOGIN".getBytes("UTF-8"));

con.getInputStream();

Heath Borders answered 2020-08-03T02:53:27Z

23 votes

我会使用Commons Http Client。 项目中有一个contrib类,可让您使用ssl。

我们正在使用它,并且运行良好。

编辑:这是SSL指南

ScArcher2 answered 2020-08-03T02:53:55Z

4 votes

是p

jsoup库获取URL是其HTML抓取和解析任务的第一步。

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();

Basil Bourque answered 2020-08-03T02:54:20Z

1 votes

尝试使用Apache Commons Net获取网络协议。 自由!

Jason Cohen answered 2020-08-03T02:54:39Z

1 votes

如果您需要比Commons Net提供的功能更多的功能,则还可以尝试从Apache项目中尝试[[http://hc.apache.org/](HTTP]组件)。

WMR answered 2020-08-03T02:55:00Z

0 votes

您可以尝试curl-to-java lib将curl php代码转换为java代码[https://github.com/jeffreyning/curl-to-java]演示

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);

curl.curl_setopt(ch, CurlOption.CURLOPT_TIMEOUT, 5000);

curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYPEER, false);

curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYHOST, false);

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;

}

jeffrey answered 2020-08-03T02:55:20Z

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐