HTTP请求的步骤:
1.建立TCP 通信连接
2.制定HTTP协议例如: GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n
3.发送制定好的HTTP协议
4.接收服务器所返回的数据,完成一次HTTP请求
注意:HTTP请求的默认端口为 80
如果要获取服务器的IP地址:1.可以通过gethostbyname获取。在浏览器中按 F12 再按F5 点击相应的连接获取IP地址
#include <stdio.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <pthread.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int sockfd = socket(AF_INET, SOCK_STREAM , 0);
if (sockfd == -1)
{
perror("socket error!");
return 0;
}
struct sockaddr_in seraddr;
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(80);
seraddr.sin_addr.s_addr = inet_addr("42.192.160.185");
int ret = connect(sockfd, (struct sockaddr *)&seraddr, sizeof(struct sockaddr));
if (ret == -1)
{
perror("connect error");
return 0;
}
else
{
printf("connect ok\n");
}
char *http = "GET /api.php?key=free&appid=0&msg=你多大 HTTP/1.1\r\nHost:api.qingyunke.com\r\n\r\n";
write(sockfd,http,strlen(http));
char buf[4096*10]={0};
printf("等待服务器应答\n");
read(sockfd,buf,4096*10);
char del_head[1024]={0};
strcpy(del_head,strstr(buf,"\r\n\r\n"));
printf("服务器应答数据为 %s\n",del_head);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)