views:

12939

answers:

5

I am tasked with writing an authentication component for an open source JAVA app. We have an in-house authentication widget that uses https. I have some example php code that accesses the widget which uses cURL to handle the transfer.

My question is whether or not there is a port of cURL to JAVA, or better yet, what base package will get me close enough to handle the task?

Update:

This is in a nutshell, the code I would like to replicate in 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);

Heath, I think you're on the right track, I think I'm going to end up using HttpsURLConnection and then picking out what I need from the response.

+2  A: 

You can try the libcurl Java bindings: http://curl.haxx.se/libcurl/java/.

Adam Rosenfield
Not a pure 100% Java solution but an option nonetheless. It requires the C libcurl library.
Rob
A: 

Try Apache Commons Net for network protocols. Free!

Jason Cohen
No HTTP Client in this library, which is a shame because otherwise Apache Commons is very good (speaking from *experience*): http://commons.apache.org/net/
Rob
+1  A: 

You could also try http://hc.apache.org/ from the Apache Project if you need more features than the ones provided through Commons Net.

WMR
+12  A: 

Exception handling omitted:

HttpURLConnection con = (HttpURLConnection) new URL("https://www.example.com").openConnection();
con.setRequestMethod("POST");
con.getOutputStream().write("LOGIN".getBytes("UTF-8"));
con.getInputStream();
Heath Borders
How would you add basic authentication to this?
BWelfel
+8  A: 

I'd use the Commons Http Client. There is a contrib class in the project that allows you to use ssl.

We're using it and it's working well.

Edit: Here's the SSL Guide

ScArcher2
+1 HttpClient really is the way to go for this.
cletus