NanoHTTPを使ったページ取得の例

この例では、環境変数http_proxyから、プロキシのURLを取得し、目的のファイルを取得する。(ただし、プロキシURLの取得部分は安全ではない。あくまで例である。)

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <libxml/nanohttp.h>
  4. void init_proxy(void)
  5. {
  6. int length;
  7. char *proxy;
  8. char *proxy_url;
  9. if((proxy = getenv("http_proxy")) != NULL)
  10. {
  11. length = strlen(proxy) + strlen("http:///") + 1;
  12. proxy_url = malloc(sizeof(char)*length);
  13. sprintf(proxy_url, "http://%s/", proxy);
  14. xmlNanoHTTPScanProxy(proxy_url);
  15. free(proxy_url);
  16. }
  17. }
  18. int main(int argc, char **argv)
  19. {
  20. char *content_type;
  21. /* Initialize NanoHTTP */
  22. init_proxy();
  23. xmlNanoHTTPInit();
  24. if(xmlNanoHTTPFetch("http://www10.plala.or.jp/always/", "tmp.html", &content_type) != -1)
  25. {
  26. puts(content_type);
  27. free(content_type);
  28. }
  29. /* Clean up NanoHTTP */
  30. xmlNanoHTTPCleanup();
  31. return EXIT_SUCCESS;
  32. }