리눅스에서 소켓을 사용하여 http 요청을하는 방법은 무엇입니까? 현재, 내가리눅스에서 소켓을 사용하여 https 요청하기
HTTP/1.1 301 Moved Permanently
//etc
Location: https://server.com
여기에 코드의 관련 부분지고있어 (이 함수는 여기에 게시 너무 큰) :
호출에/* Socket file descriptor. */
int sock;
struct sockaddr_in sockaddr;
struct hostent *host; /* Host information. */
sock = socket(AF_INET, /* IPV4 protocol. */
SOCK_STREAM, /* TCP socket. */
0); /* O for socket() function choose the correct protocol based on the socket type. */
if(sock == INVALID_SOCKET) return SOCK_GENERROR;
if((host = gethostbyname(server)) == NULL) {
close(sock);
return SOCK_HOSTNFOUND;
}
/* zero buffer */
memset(&sockaddr, 0, sizeof(sockaddr));
sockaddr.sin_family = AF_INET;
memcpy(&sockaddr.sin_addr,
host -> h_addr,
host -> h_length);
sockaddr.sin_port = htons(port);
if(connect(sock, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) == INVALID_SOCKET) {
close(sock);
return SOCK_FERRCONN;
}
if(send(sock, sendbuf, bufsize, 0) == INVALID_SOCKET) {
close(sock);
return SOCK_FERRWRITE;
}
if((readed = recv(sock, recvbuffer, sizeof(recvbuffer), 0)) <= 0)
break;
, server="server.com";
및 port=80;
I가 시도 가능한 한 내 onw 루틴을 제거하고이 코드를 입력하면 더 깨끗하게 정리할 수 있습니다.
HTTP 또는 HTTPS 요청을 만드시겠습니까? 'sendbuf'에서 어떤 데이터를 보내고 있습니까? – Julien
@Julien : https 요청입니다. – Jack