2010-09-20 19 views
1

我想使用socket.h的socket和connect和recv方法打開一個用於http url的套接字(https://www.abc.co.uk:8433/open/url/client?username=123&password=456)。套接字打開http url並檢索數據

問題是URL使用8433端口和其餘的URL(/ open/url/client?username = 123 & password = 456)。也使用https url。

有人知道該怎麼做嗎?很久以前,我已經完成了標準的C編碼,我忘記了。

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]); 

回答

5

如果你想要做的HTTPS通信,我的猜測是,你不想實現它自己 - 或者你是怎麼想到在與服務器的安全方式進行通信?

在這種情況下,我建議您使用libcurl,它具有出色的協議支持,並且還支持通過OpenSSL進行的加密連接。

+0

同意 - 套接字對此太低級 - 您需要在其上實現SSL和HTTP。 'libcurl'是正確的工具。 – caf 2010-09-20 10:12:02