找回密码
 立即注册
查看: 212|回复: 4

询问成功使用阿里云查询天气的同学或老师

[复制链接]

1

主题

0

回帖

9

积分

新手上路

积分
9
发表于 2022-9-9 16:44:05 | 显示全部楼层 |阅读模式
请问请求报头的格式是什么?我试了很多次都是连接错误
回复

使用道具 举报

2

主题

17

回帖

85

积分

注册会员

积分
85
发表于 2022-9-14 18:38:45 | 显示全部楼层
请求方法+空格+URL+空格+协议版本+回车符\r+换行符\n+头部字段名1+:+值+\r+\n ...头部字段名1+:+值+\r+\n + 结束\r\n
回复

使用道具 举报

2

主题

17

回帖

85

积分

注册会员

积分
85
发表于 2022-9-14 18:41:49 | 显示全部楼层
例如:
API:  http://v.api.aa1.cn/api/yiyan/index.php
上面的/api/yiyan/index.php就是URL
v.api.aa1.cn 是Host
所以可以试着这样发:
char *http  = "GET /api/yiyan/index.php HTTP/1.1\r\nHost:v.api.aa1.cn\r\n\r\n"
回复

使用道具 举报

0

主题

5

回帖

18

积分

新手上路

积分
18
发表于 2022-9-15 16:06:05 | 显示全部楼层
#include <stdio.h>

/*
char *requestHead = "GET /area-to-weather?area=广州 HTTP/1.1\r\n"
                    "Host: ali-weather.showapi.com\r\n"
                    "Authorization: APPCODE d487d937315848af80710a06f4592fee\r\n\r\n";
                    */
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int  main()
{


//创建TCP 通信socket
int   tcp_socket = socket(AF_INET, SOCK_STREAM, 0);


//2.连接服务器  (重点)
                struct sockaddr_in addr;
            addr.sin_family = AF_INET;
            addr.sin_port   = htons(80) ; //所有HTTP服务器的端口都是 80
        addr.sin_addr.s_addr =  inet_addr("118.190.134.140");  //青云客服务器
int ret=connect(tcp_socket,(struct sockaddr *)&addr,sizeof(addr));
    if(ret < 0)
    {   
        perror("连接服务器失败\n");
    }else
    {
        printf("连接服务器成功\n");
    }


//3.往服务器中发送请求协议
char *requestHead = "GET /area-to-weather?area=%E5%B9%BF%E5%B7%9E HTTP/1.1\r\n"
                    "Host:ali-weather.showapi.com\r\n"
                    "Authorization:APPCODE 1c53bf0f05b84d8785ecf88e02ae4093\r\n\r\n";
                    //APPCODE 1c53bf0f05b84d8785ecf88e02ae4093

#if 0
char *requestHead = "GET /area-to-weather?area=深圳 HTTP/1.1\r\n"
                    "Host:ali-weather.showapi.com\r\n"
                    "Content-Type:text/html; charset=utf-8\r\n"
                    "Authorization:APPCODE 1c53bf0f05b84d8785ecf88e02ae4093\r\n\r\n";
#endif

                //"Content-Type":"text/html; charset=utf-8"
    write(tcp_socket,requestHead,strlen(requestHead));

    while (1)
    {
        
        //4.读取服务器的应答数据
        char  data[1024]={0};
        read(tcp_socket,data,1024);
        printf("服务器应答:%s\n",data);
    }



}
回复

使用道具 举报

2

主题

17

回帖

85

积分

注册会员

积分
85
发表于 2022-9-15 20:22:49 | 显示全部楼层

柱锦哥直接上代码  牛皮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-8 01:10 , Processed in 0.679723 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表