testminiwget.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* $Id: testminiwget.c,v 1.4 2012/06/23 22:35:59 nanard Exp $ */
  2. /* Project : miniupnp
  3. * Author : Thomas Bernard
  4. * Copyright (c) 2005-2012 Thomas Bernard
  5. * This software is subject to the conditions detailed in the
  6. * LICENCE file provided in this distribution.
  7. * */
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include "miniwget.h"
  11. /**
  12. * This program uses the miniwget / miniwget_getaddr function
  13. * from miniwget.c in order to retreive a web ressource using
  14. * a GET HTTP method, and store it in a file.
  15. */
  16. int main(int argc, char * * argv)
  17. {
  18. void * data;
  19. int size, writtensize;
  20. FILE *f;
  21. char addr[64];
  22. if(argc < 3) {
  23. fprintf(stderr, "Usage:\t%s url file\n", argv[0]);
  24. fprintf(stderr, "Example:\t%s http://www.google.com/ out.html\n", argv[0]);
  25. return 1;
  26. }
  27. data = miniwget_getaddr(argv[1], &size, addr, sizeof(addr), 0);
  28. if(!data) {
  29. fprintf(stderr, "Error fetching %s\n", argv[1]);
  30. return 1;
  31. }
  32. printf("local address : %s\n", addr);
  33. printf("got %d bytes\n", size);
  34. f = fopen(argv[2], "wb");
  35. if(!f) {
  36. fprintf(stderr, "Cannot open file %s for writing\n", argv[2]);
  37. free(data);
  38. return 1;
  39. }
  40. writtensize = fwrite(data, 1, size, f);
  41. if(writtensize != size) {
  42. fprintf(stderr, "Could only write %d bytes out of %d to %s\n",
  43. writtensize, size, argv[2]);
  44. } else {
  45. printf("%d bytes written to %s\n", writtensize, argv[2]);
  46. }
  47. fclose(f);
  48. free(data);
  49. return 0;
  50. }