【发布时间】:2021-07-09 18:14:06
【问题描述】:
我正在尝试打印 html 页面 https://pastebin.com/raw/7y7MWssc
这是我的代码:
#include <stdio.h>
#include <winsock2.h>
void main(){
WSADATA WSA;
WSAStartup(MAKEWORD(2,2),&WSA) ;
char Request[] = "GET /raw/7y7MWssc HTTP/1.1\r\n\r\n" ;
char Response[2000] ;
SOCKET Socket = socket(AF_INET , SOCK_STREAM , 0 );
struct sockaddr_in Server;
struct hostent *H = gethostbyname("pastebin.com") ;
Server.sin_addr.s_addr = *( (int *)H->h_addr);
Server.sin_family = AF_INET;
Server.sin_port = htons( 80 );
connect(Socket , (struct sockaddr *)&Server , sizeof(Server)) ;
send(Socket , Request , strlen(Request) , 0) ;
int Rs = recv(Socket , Response , 2000 , 0) ;
Response[Rs] = 0 ;
printf("%s\n", Response );
closesocket(Socket);
WSACleanup();
}
但我不断收到 400 Bad Request 作为响应,但是当请求是“GET /raw/7y7MWssc HTTP/1.1\r\nHost: pastebin.com\r\n\r\n”时,我得到 301 Moved Permanently to地点:https://pastebin.com/raw/7y7MWssc 感谢您的帮助
【问题讨论】:
-
听起来你知道如何解决它?
-
它永久移动到 https 而不是 http,这意味着服务器不再接受常规 HTTP,而只接受基于 TLS 的安全 HTTP。