zoukankan      html  css  js  c++  java
  • 一个很好用的http库 libghttp

    前些时间,由于找不到一个比较好使用的http库,自己封装了一个,不过时间紧迫,也没有完整分析HTTP协议,因此心里总不塌实地使用它,一次偶然的机 会,让我在网上找到一个好用的http库 -- libghttp,目前的版本因该是libghttp-1.0.9. 这个库十分的方便使用,它能够轻松地实现同步和异步的Http请求。 简单使用实例: #include <ghttp.h> int main(int argc, char *argv[]) { char *uri = "http://www.hao123.com"; ghttp_request *request = NULL; ghttp_status status; char *buf; int bytes_read; request = ghttp_request_new(); if(ghttp_set_uri(request, uri) == -1) exit(-1); if(ghttp_set_type(request, ghttp_type_get) == -1) exit(-1); ghttp_prepare(request); status = ghttp_process(request); if(status == ghttp_error) exit(-1); /* OK, done */ printf("Status code -> %d\n", ghttp_status_code(request)); buf = ghttp_get_body(loader->request); bytes_read = ghttp_get_body_len(loader->request); return 0; } 异步请求实例:#include <ghttp.h> int main(int argc, char *argv[]) { char *uri = "http://www.hao123.com"; ghttp_request *request = NULL; ghttp_status status; char *buf; int bytes_read; request = ghttp_request_new(); if(ghttp_set_uri(request, uri) == -1) exit(-1); if(ghttp_set_type(request, ghttp_type_get) == -1) exit(-1); /* NOTE: Set async request */ ghttp_set_sync(request, ghttp_async); ghttp_prepare(request); while(1) { status = ghttp_process(request); if(status == ghttp_error) break; /* NOTE: buf may NULL, notice it */ buf = ghttp_get_body(loader->request); bytes_read = ghttp_get_body_len(loader->request); if(status == ghttp_done) { /* NOTE: Ok, done */ break; } } return 0; } 文件: libghttp-1.0.9.tar.gz 大小: 143KB 下载: 下载
  • 相关阅读:
    解析 AJAX 返回回来的 xml字符串
    JS 与 后台如何获取 Cookies
    鼠标上下滚轮事件
    MVC Control 返回各种数据
    ildasm 查看程序集 里面的图标的意思
    对象的序列化和反序列化 itprobie
    文件上传通用类 itprobie
    文件下载的四种方式 itprobie
    委托事件的实际运用 itprobie
    使用NPOI实现excel的导入导出 itprobie
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327167.html
Copyright © 2011-2022 走看看