Я хочу делать https запросы вместо http, от клиента к серверу методом POST. Вот шаги, которые я выполняю, чтобы выполнить простые http-запросы:
- открыть сокет.
- подключиться к серверу по имени домена.
- подготовить данные для запроса .
- отправить запрос и получить ответ от сервера.
, однако я не могу найти ничего о том, как я могу выполнить запросы https с помощью winsock в c ++. я попытался изменить заголовок http с HTTP / 1.1 на HTTS / 1.1 , но не работает. Может кто-нибудь помочь?
РЕДАКТИРОВАТЬ: через некоторое время я нашел сообщение, которое немного помогло, но теперь он даже не отправил запрос. раньше у меня был этот код:
SOCKADDR_IN sin;
ZeroMemory(&sin, sizeof(sin));
sin.sin_port = htons(PORT);
sin.sin_family = AF_INET;
memcpy(&sin.sin_addr.S_un.S_addr, host->h_addr_list[0], sizeof(sin.sin_addr.S_un.S_addr));
//connect to server
if (connect(sock, (const sockaddr*)&sin, sizeof(sin))) {
return "error";
}
и теперь я сделал это:
SOCKADDR_IN sin;
ZeroMemory(&sin, sizeof(sin));
sin.sin_port = htons(PORT);
sin.sin_family = AF_INET;
memcpy(&sin.sin_addr.S_un.S_addr, host->h_addr_list[0], sizeof(sin.sin_addr.S_un.S_addr));
//connect to server
if (connect(sock, (const sockaddr*)&sin, sizeof(sin))) {
return "error";
}
bind(sock, (sockaddr*)&sin, sizeof(sin));
listen(sock, 5);
int addrLen;
SOCKET newsock = accept(sock,(sockaddr*)&sin, &addrLen);
char buffer[255];
recv(newsock, buffer, 255, 0);
после этой части я пытаюсь отправить запрос:
if (!send(newsock, ssds.c_str(), strlen(ssds.c_str()), 0)) {
return "error";
}
до у меня был «носок» в качестве сокета и он работал, но с новым сокетом он не отправлял данные