This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
sdk:httpget [2015/07/02 13:02] fachet created |
sdk:httpget [2015/07/02 14:15] (current) fachet |
||
---|---|---|---|
Line 7: | Line 7: | ||
if (send(s, "GET / HTTP/1.0\r\n\r\n") == -1) exit(3); | if (send(s, "GET / HTTP/1.0\r\n\r\n") == -1) exit(3); | ||
if ((r = recv(s)) == NULL) exit(4); | if ((r = recv(s)) == NULL) exit(4); | ||
- | printf("%s", r); | + | printf("%s\n", r); |
+ | if (!strstr(r, "HTTP/1.1 200 OK")) { | ||
+ | i = substr(r, strstr(r, "IP Address: ") + 12, strlen(r)); | ||
+ | printf("IP Address: %s\n", left(i, strstr(i, "</body>"))); | ||
+ | } | ||
close(s); | close(s); | ||
+ | exit(0); | ||
</code> | </code> | ||
<code c Output> | <code c Output> | ||
- | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | ||
Content-Type: text/html | Content-Type: text/html | ||
Line 23: | Line 27: | ||
<html><head><title>Current IP Check</title></head><body>Current IP Address: 89.12.4.18</body></html> | <html><head><title>Current IP Check</title></head><body>Current IP Address: 89.12.4.18</body></html> | ||
+ | IP Address: 89.12.4.18 | ||
+ | </code> | ||
+ | | ||
+ | <code c httpget2.are> | ||
+ | To get from or post data to a web server you can easily use standard sockets. | ||
+ | |||
+ | if ((so = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) exit(1); | ||
+ | if (connect(so, "checkip.dyndns.com", 80) < 0) exit(2); | ||
+ | if (send(so, "GET / HTTP/1.0\r\n\r\n") == -1) exit(3); | ||
+ | if ((s = recv(so)) == NULL) exit(4); | ||
+ | |||
+ | printf("RESPONSE: <%s>\n", left(s, p = strstr(s, "\n"))); | ||
+ | s = right(s, strlen(s) - p - 1); | ||
+ | |||
+ | while ((p = strchr(s, "\n")) > 0) { | ||
+ | h = left(s, p); | ||
+ | hp = strstr(h, ": "); | ||
+ | l = left(h, hp); | ||
+ | r = substr(h, hp + 2, strlen(s)-hp-2-1); | ||
+ | printf("HEADER: <%s> value <%s>\n", l, r); | ||
+ | s = right(s, strlen(s) - p - 1); | ||
+ | } | ||
+ | printf("BODY: %s\n", s); | ||
+ | close(s); | ||
+ | exit(0); | ||
</code> | </code> |