Thanks very much everyone - what a great forum.
The problem I was actually having was that the connection would be made using
client.connect(camera, 80)
but when I attempted to control the camera (using the various authentication methods mentioned - the base64 method was something I'd tried in java and PHP, but not here - very useful, thanks!) it failed as the connection had already been closed.
The posts above however inspired me to try a different approach: instead of opening the connection and keeping it open, I've tried opening the connection on a given event, controlling the camera and then stopping the connection, as follows:
if(<some event>) {
if(client.connect(camera, 80)>0) {
client.write("GET /camera_control.cgi?param=5&value=1&user=<user>&pwd=<password> HTTP/1.0\r\n"
"Authorization: Basic [base64 encoding of username:password]==\r\n"
"\r\n");
client.stop();
}
}
This works a treat - I guess due to either the cameras implemenation or Arduinos connections are terminated if not authenticated in a reasonable time window.
Thanks all for your useful advice!