2010-09-20 7 views
1

Je voudrais ouvrir un socket à http url (https://www.abc.co.uk:8433/open/url/client?username=123&password=456) en utilisant les méthodes socket et connect et recv de socket.h.socket ouvert à http url et récupérer une donnée

Les problèmes sont que l'URL utilise le port 8433 et l'URL restante (/ open/url/client? Username = 123 & password = 456). Utilisant également l'URL https.

Dose quelqu'un sait comment le faire? Il y a longtemps, j'avais fait le codage C standard, j'oublie.

int sock; 

char url[1024]; 

struct sockaddr_in client; 
struct hostent *h; 
if ((sock = socket(AF_INET,SOCK_STREAM,0)) == -1) 
{ 
    perror("socket:"); 
    return; 
} 

sprintf(url, "https://www.abc.co.uk:%d/open/url/client?username=123&password=456", 8443); 

client.sin_family = AF_INET; 
client.sin_port = htons(8443); 
h = gethostbyname(url); 
client.sin_addr.s_addr = inet_addr(h->h_addr_list[0]); 

Répondre

5

Si vous voulez faire la communication HTTPS, je suppose que vous ne voulez pas mettre en œuvre vous-même - ou comment avez-vous attendre de communiquer de manière sécurisée avec le serveur?

Dans ce cas, je vous recommande d'utiliser libcurl, qui a un excellent support de protocole et supporte également les connexions cryptées via OpenSSL.

+0

D'accord - les sockets sont trop bas pour cela - vous devez implémenter SSL et HTTP par-dessus. 'libcurl' est le bon outil. – caf

Questions connexes