andrewducker: (overwhelming firepower)
andrewducker ([personal profile] andrewducker) wrote2011-11-24 08:07 am

Anyone here know much about Java?

I have user input for a URL field. I want them to be able to enter anything from "http://andrewducker.wordpress.com/xmlrpc.php" to "andrewducker.wordpress.com" and be able to end up at the same end point.

I've wasted a couple of hours messing around with the various constructors for URL and not got to anywhere satisfactory, should I just do string checking and construct it myself?

I should make it clear - I always want the /xmlrpc.php bit to be what's on the end of the URL, that's a Wordpress standard, so I don't need to do any complex discovery. I just need to append that if it's not there.

I was hoping that someone would have written a class that could append bits of URLs together, but the basic stuff in the built in URL class doesn't quite cut it.

[identity profile] skington.livejournal.com 2011-11-24 09:52 am (UTC)(link)
Sounds like a series of regular expressions is your best bet, then. In Perl, that would be e.g.

if ($url !~ m{^ https?:// }x) {
$url = 'http://' . $url;
}
if ($url !~ m{ /xmlrpc\.php $ }x) {
$url .= '/xmlrpc.php';
}

And then use your standard libraries to check whether that URL is valid or not. (Validation step might just be to call the resulting "url" and see if it works.)