迷宫十字路 2017-08-28 10:54 采纳率: 0%
浏览 1215

ubuntu终端,发送http请求获取天气,得到服务器回应的问题。求大神解惑!

我执行程序后,获得天气的信息。但是JOSN数据后面还带有一些不必要的信息,这是为什么。 我的的是ubuntu16.04的。执行结果图片和代码如下。
图片说明

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define MAX_SIZE (4028u)

int main(int argc, char const *argv[])
{
    struct hostent *p = gethostbyname("weather.market.alicloudapi.com");
    struct in_addr **list = (struct in_addr **)p->h_addr_list;

    int fd = socket(AF_INET,SOCK_STREAM,0);

    struct sockaddr_in srvaddr;
    socklen_t len = sizeof(srvaddr);
    bzero(&srvaddr,len);

    srvaddr.sin_family = AF_INET;
    srvaddr.sin_port = htons(atoi(argv[1]));
    srvaddr.sin_addr.s_addr = inet_addr(inet_ntoa(*list[0]));

    int i;
    for(i=0; p->h_addr_list[i]!=NULL; i++)
    {
        printf("%s\n", inet_ntoa( *list[i]) );
    }

    char *r_buf = calloc(1,MAX_SIZE);
    char *w_buf = calloc(1,1024);

    bzero(w_buf,1024);  
    snprintf(w_buf,1024,"GET /phone-post-code-weeather?"
                        "phone_code=020 "
                        "HTTP/1.1\r\n"
                        "Host:weather.market.alicloudapi.com\r\n"
                      "Authorization:APPCODE be474d3c8ec84316b1e***7298d8123b\r\n\r\n");


    connect(fd,(struct sockaddr *)&srvaddr,len);
    write(fd,w_buf,1024);

    int ret = 0;
    int pianyi = 0;

    do{
        ret = read(fd,r_buf + pianyi,1);
        pianyi += ret;
    }
    while(ret > 0);

    printf("%s\n",r_buf);

    close(fd);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2018-05-19 14:44
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题