Merge pull request 'HTTP demo with Jansson for JSON parsing' (#4) from nez/libreshop_client:main into jansson
Reviewed-on: emilyd/libreshop_client#4
This commit is contained in:
commit
3cb478a7d2
4
Makefile
4
Makefile
@ -33,13 +33,13 @@ LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map
|
|||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# any extra libraries we wish to link with the project
|
# any extra libraries we wish to link with the project
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
LIBS := -lwiiuse -lbte -logc -lm
|
LIBS := -lwiiuse -lbte -logc -lm -ljansson
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# list of directories containing libraries, this must be the top level containing
|
# list of directories containing libraries, this must be the top level containing
|
||||||
# include and lib
|
# include and lib
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
LIBDIRS :=
|
LIBDIRS := $(PORTLIBS)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# no real need to edit anything past this point unless you need to add additional
|
# no real need to edit anything past this point unless you need to add additional
|
||||||
|
@ -4,7 +4,10 @@
|
|||||||
#include <network.h>
|
#include <network.h>
|
||||||
#include <wiiuse/wpad.h>
|
#include <wiiuse/wpad.h>
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "sandia/sandia.h"
|
#include "sandia/sandia.h"
|
||||||
|
#include <jansson.h>
|
||||||
|
|
||||||
// Uncomment if this is a development build
|
// Uncomment if this is a development build
|
||||||
//#include "debug.h"
|
//#include "debug.h"
|
||||||
@ -87,7 +90,39 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
sandia req = sandia_create("libreshop.donut.eu.org", 80);
|
sandia req = sandia_create("libreshop.donut.eu.org", 80);
|
||||||
sandia_response res = sandia_get_request(&req, "/");
|
sandia_response res = sandia_get_request(&req, "/");
|
||||||
printf("\n%s\n", res.body);
|
bool lastWasNewline = false;
|
||||||
|
int resBodyLength = strlen(res.body);
|
||||||
|
for (int i = 0; i < resBodyLength; i++) {
|
||||||
|
if (res.body[i] == '\r') continue;
|
||||||
|
|
||||||
|
if (res.body[i] == '\n') {
|
||||||
|
if (lastWasNewline) {
|
||||||
|
int rBL = resBodyLength - i;
|
||||||
|
char* body = malloc(rBL);
|
||||||
|
for (int j = 0; j < rBL; j++) {
|
||||||
|
body[j] = res.body[j + i + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
json_error_t error;
|
||||||
|
json_t *root = json_loads(body, 0, &error);
|
||||||
|
if (!root || !json_is_array(root)) {
|
||||||
|
printf("failed decoding\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("%s\n", body);
|
||||||
|
for (int j = 0; j < json_array_size(root); j++) {
|
||||||
|
json_t *data = json_array_get(root, j);
|
||||||
|
printf("%s\n", json_string_value(data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else lastWasNewline = true;
|
||||||
|
}
|
||||||
|
else lastWasNewline = false;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
sandia_close(&req);
|
sandia_close(&req);
|
||||||
} else {
|
} else {
|
||||||
logprint(0, "Network configuration failed :(\n");
|
logprint(0, "Network configuration failed :(\n");
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 9b383cdda825ab4ba2767102b06cbd5dc734dae9
|
Subproject commit 62ea4d024fda8663463ddc20c13eec5e1c08b2de
|
Loading…
Reference in New Issue
Block a user