simple.c 978 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <yuarel.h>
  4. int main(void)
  5. {
  6. int p;
  7. struct yuarel url;
  8. char *parts[3];
  9. struct yuarel_param params[3];
  10. char url_string[] = "http://localhost:8989/path/to/test?query=yes&param1=no#frag=1";
  11. if (-1 == yuarel_parse(&url, url_string)) {
  12. fprintf(stderr, "Could not parse url!\n");
  13. return 1;
  14. }
  15. printf("Struct values:\n");
  16. printf("\tscheme:\t\t%s\n", url.scheme);
  17. printf("\thost:\t\t%s\n", url.host);
  18. printf("\tport:\t\t%d\n", url.port);
  19. printf("\tpath:\t\t%s\n", url.path);
  20. printf("\tquery:\t\t%s\n", url.query);
  21. printf("\tfragment:\t%s\n", url.fragment);
  22. if (3 != yuarel_split_path(url.path, parts, 3)) {
  23. fprintf(stderr, "Could not split path!\n");
  24. return 1;
  25. }
  26. printf("\nPath parts: '%s', '%s', '%s'\n\n", parts[0], parts[1], parts[2]);
  27. printf("Query string parameters:\n");
  28. p = yuarel_parse_query(url.query, '&', params, 3);
  29. while (p-- > 0) {
  30. printf("\t%s: %s\n", params[p].key, params[p].val);
  31. }
  32. }