Linux网络编程之"获取网络天气信息"

需求分析:
    1.需要Linux c 网络编程基础,
    2.需要了解 http 协议
    3.需要天气信息相关api(可以从阿里云上购买,很便宜的!)
    4.需要cJSON解析库(因为获取到的天气信息一般是用cJSON
      封装,有的是用xml封装则需要相关解析库)

cJSON下载链接:https://github.com/DaveGamble/cJSON
cJSON在线代码格式化:http://tool.oschina.net/codeformat/json
cJSON简解及使用:

cJSON核心结构体:
typedef struct cJSON
{
    struct cJSON *next;
    struct cJSON *prev;
    struct cJSON *child;
    int type;           /*键类型*/
    char *valuestring;  /*字符串值*/
    int valueint;       /*整形值*/
    double valuedouble; /*浮点值*/ 
    char *string;       /*键名称*/
} cJSON;

说明:cJSON数据是以(键-值)形式存在。每个键对应的值都可以
     访问(valuestring、valueint、valuedouble)成员得到。

主要用到的函数:
    1. CSJON_PUBLIC(cJSON*) cJSON_Parse(const char *value);
        用了获得根节点,

    2. CSJON_PUBLIC(cJSON*) cJSON_GetObjectItem(const cJSON* const object, const char *const string);
        用来获得根节点下的子节点,

    3. CSJON_PUBLIC(void) cJSON_Delete(const cJSON *item);
        用来释放为根节点分配的内存!
获取天气的http协议:
    "GET /phone-post-code-weeather?"
    "phone_code=021 "
    "HTTP/1.1\r\n"
    "Host:ali-weather.showapi.com\r\n"
    "Authorization:APPCODE xxxxxx\r\n\r\n"

解释说明:
    "/phone-post-code-weeather"此部分对应于 path格式
    "Host:ali-weather.showapi.com"此部分对应于 接口域名
    "phone_code" 表示城市编号021为上海(记住后面要空格)
    "xxxxxx" 为你购买的APPCODE 这我就不填。。。
![这里写图片描述](http://img.blog.csdn.net/20170815164731926?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29taW5nRmx5aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
相关代码:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值