[英]How to receive HTTP Response
char url[]= "GET " PATH "\r\n"
"Host: " HOST "\r\n"
"User-Agent: Mozilla/5.0\r\n"
"\r\n";
write(sfd, url, strlen(url)); // write(fd, char[]*, len);
bzero(buffer, BUFFER_SIZE);
while(read(sfd, buffer, 1024 - 1) != 0){
printf("%s", BUFFER_SIZE);
bzero(buffer, 1024);
}
I'm writing a HTTP Client using Socket. 我正在使用Socket编写HTTP客户端。 The problem here is the read() func only return HTTP respond body.
这里的问题是read()函数仅返回HTTP响应主体。 But i want it to fetch http respond header also.
但我也希望它也获取http response标头。 I don't know what i'm doing wrong here.
我不知道我在做什么错。
The problem is that you are not specifying an HTTP version in the GET
request, so the server will think you are a pre-1.0 client and won't send any headers to you. 问题是您没有在
GET
请求中指定HTTP版本,因此服务器将认为您是1.0之前的客户端,并且不会向您发送任何标头。
Do this instead: 改为这样做:
char url[]= "GET " PATH " HTTP/1.0\r\n" ...
Or: 要么:
char url[]= "GET " PATH " HTTP/1.1\r\n" ...
And then the server will give you headers. 然后服务器将为您提供标头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.