OK, since interest in this seems to have reappeared recently, I've dug out my credentials to log in and post this.
Firstly, as you've probably already seen from looking at the code, it's very dirty. Not a good base for building a reliable connector.
What made me give up was I couldn't follow the documentation for doing the Synergy UI; which is why they have to be hard coded in my code. Another major problem was parsing the returned XML. I don't remember exactly why now; but for some reason I couldn't use the inbuilt XML parser (might have been a bug that might have been fixed since, might have been something else. I don't remember). Which is why the rather horrid string search. Next big issue is that at the time I only had access to a single CARDDAV server. And that server offered a *lot* of shortcuts for getting the vcard that are not in the CARDDAV spec. While I think that what I wrote would have worked with any CARDDAV server, that may not be true. Nobody ever responded with results having tested it on any other CARDDAV servers; so I don't know.
A final sticking point is that there were issues using non standard ports. I don't remember the details, but it's something to bear in mind.
Now onto the better news! The code for how to do a PROPFIND request (as opposed to a GET) should give anyone trying to write a connector a good starting point, as PROPFIND requests are mandatory for CARDDAV. From the look of some of the HP documentation, they were planning a CARDDAV connector, but it was never implemented. In other words, it's quite likely that someone at HP knows pretty well exactly what's needed (if you can find them).
The next bit of good news is that writing the information from CARDDAV into the database was very straightforward and is shown well in the Plaxo example.
OK, I hope this post helps someone!