http_client.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef HTTP_CLIENT_H_
  2. #define HTTP_CLIENT_H_
  3. #include "HttpMessage.h"
  4. /*
  5. #include <stdio.h>
  6. #include "http_client.h"
  7. int main(int argc, char* argv[]) {
  8. HttpRequest req;
  9. req.method = HTTP_GET;
  10. req.url = "http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/";
  11. HttpResponse res;
  12. int ret = http_client_send(&req, &res);
  13. printf("%s\n", req.Dump(true,true).c_str());
  14. if (ret != 0) {
  15. printf("* Failed:%s:%d\n", http_client_strerror(ret), ret);
  16. }
  17. else {
  18. printf("%s\n", res.Dump(true,true).c_str());
  19. }
  20. return ret;
  21. }
  22. */
  23. #define DEFAULT_HTTP_TIMEOUT 10 // s
  24. typedef struct http_client_s http_client_t;
  25. http_client_t* http_client_new(const char* host = NULL, int port = DEFAULT_HTTP_PORT, int tls = 0);
  26. int http_client_del(http_client_t* cli);
  27. const char* http_client_strerror(int errcode);
  28. int http_client_set_timeout(http_client_t* cli, int timeout);
  29. int http_client_clear_headers(http_client_t* cli);
  30. int http_client_set_header(http_client_t* cli, const char* key, const char* value);
  31. int http_client_del_header(http_client_t* cli, const char* key);
  32. const char* http_client_get_header(http_client_t* cli, const char* key);
  33. int http_client_send(http_client_t* cli, HttpRequest* req, HttpResponse* res);
  34. // http_client_new -> http_client_send -> http_client_del
  35. int http_client_send(HttpRequest* req, HttpResponse* res, int timeout = DEFAULT_HTTP_TIMEOUT);
  36. #endif // HTTP_CLIENT_H_