How to create http request using sockets on Linux? I am currently getting
HTTP/1.1 301 Moved Permanently
Location: https:
here is the relevant part of the code (the function is too large to publish here):
int sock;
struct sockaddr_in sockaddr;
struct hostent *host;
sock = socket(AF_INET,
SOCK_STREAM,
0);
if(sock == INVALID_SOCKET) return SOCK_GENERROR;
if((host = gethostbyname(server)) == NULL) {
close(sock);
return SOCK_HOSTNFOUND;
}
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;
in a call server="server.com";andport=80;
I tried to remove as many of my onw routines as possible and inject from this code to make you cleaner.
source
share