curl 使用的疑惑 回调接口 数据为空

hzy694358 2016-03-30 08:58:32

size_t write_data_callback(void *ptr, size_t size, size_t nmemb, void *buf)
{
printf("ptr:%s,size:%d,nmemb:%d\n",ptr,size,nmemb);
strncat(buf, ptr, size*nmemb);
return size*nmemb;
}

结果:
59 ptr:遅^MT/,size:1,nmemb:2441
60 ptr:,size:1,nmemb:1448
61 ptr:,size:1,nmemb:2896
62 ptr:,size:1,nmemb:2896
63 ptr:,size:1,nmemb:1448
64 ptr:,size:1,nmemb:2896
65 ptr:,size:1,nmemb:2896
66 ptr:,size:1,nmemb:1448
67 ptr:,size:1,nmemb:2896
68 ptr:,size:1,nmemb:2896
69 ptr:,size:1,nmemb:1448
70 ptr:,size:1,nmemb:2896
71 ptr:,size:1,nmemb:2896
72 ptr:,size:1,nmemb:1448
73 ptr:,size:1,nmemb:2896
……
---------------------------------------
ptr 的数据都是空,同样的方式获取其他网页数据都是可以的,不知为何 就单单这一个不行;
url 地址:http://www.nic.top/upload/top/dellista.txt

求解释
...全文
333 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-30
  • 打赏
  • 举报
回复
仅供参考:
void HexDump(char *buf,int len,int addr) {
    int i,j,k;
    char binstr[80];

    for (i=0;i<len;i++) {
        if (0==(i%16)) {
            sprintf(binstr,"%08x -",i+addr);
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
        } else if (15==(i%16)) {
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
            sprintf(binstr,"%s  ",binstr);
            for (j=i-15;j<=i;j++) {
                sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
            }
            printf("%s\n",binstr);
        } else {
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
        }
    }
    if (0!=(i%16)) {
        k=16-(i%16);
        for (j=0;j<k;j++) {
            sprintf(binstr,"%s   ",binstr);
        }
        sprintf(binstr,"%s  ",binstr);
        k=16-k;
        for (j=i-k;j<i;j++) {
            sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
        }
        printf("%s\n",binstr);
    }
}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧