diff --git a/base/sources/backends/android_http_request.c b/base/sources/backends/android_http_request.c index 366f31e2..26dc74a7 100644 --- a/base/sources/backends/android_http_request.c +++ b/base/sources/backends/android_http_request.c @@ -7,8 +7,8 @@ ANativeActivity *iron_android_get_activity(void); jclass iron_android_find_class(JNIEnv *env, const char *name); -void android_http_request(const char *url, const char *path, const char *data, int port, bool secure, int method, const char *header, - iron_http_callback_t callback, void *callbackdata) { +void iron_http_request(const char *url, const char *path, const char *data, int port, bool secure, int method, const char *header, + iron_http_callback_t callback, void *callbackdata) { ANativeActivity *activity = iron_android_get_activity(); JNIEnv *env; JavaVM *vm = iron_android_get_activity()->vm; diff --git a/base/sources/backends/android_http_request.h b/base/sources/backends/android_http_request.h index f4a1044a..c7605847 100644 --- a/base/sources/backends/android_http_request.h +++ b/base/sources/backends/android_http_request.h @@ -4,6 +4,6 @@ typedef void (*iron_http_callback_t)(int error, int response, const char *body, void *callbackdata); -void android_http_request(const char *url, const char *path, const char *data, int port, bool secure, int method, const char *header, - iron_http_callback_t callback, void *callbackdata); +void iron_http_request(const char *url, const char *path, const char *data, int port, bool secure, int method, const char *header, + iron_http_callback_t callback, void *callbackdata); diff --git a/base/sources/backends/apple_net.m b/base/sources/backends/apple_net.m index 974f97b5..6f884f22 100644 --- a/base/sources/backends/apple_net.m +++ b/base/sources/backends/apple_net.m @@ -6,24 +6,20 @@ static NSURLSession *session = nil; void iron_http_request(const char *url, const char *path, const char *data, int port, bool secure, int method, const char *header, iron_http_callback_t callback, void *callbackdata) { + if (session == nil) { + NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; + session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; + } + NSString *urlstring = secure ? @"https://" : @"http://"; urlstring = [urlstring stringByAppendingString:[NSString stringWithUTF8String:url]]; urlstring = [urlstring stringByAppendingString:@":"]; urlstring = [urlstring stringByAppendingString:[[NSNumber numberWithInt:port] stringValue]]; urlstring = [urlstring stringByAppendingString:@"/"]; urlstring = [urlstring stringByAppendingString:[NSString stringWithUTF8String:path]]; - NSURL *aUrl = [NSURL URLWithString:urlstring]; - - if (session == nil) { - NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; - sessionConfiguration.HTTPAdditionalHeaders = @{@"Content-Type" : @"application/json"}; - session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; - } - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl]; if (data != 0) { - // printf("Sending %s\n\n", data); NSString *datastring = [NSString stringWithUTF8String:data]; request.HTTPBody = [datastring dataUsingEncoding:NSUTF8StringEncoding]; } @@ -48,13 +44,8 @@ void iron_http_request(const char *url, const char *path, const char *data, int completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; int statusCode = (int)[httpResponse statusCode]; - - NSMutableData *responseData = [[NSMutableData alloc] init]; - [responseData appendData:data]; - [responseData appendBytes:"\0" length:1]; - dispatch_async(dispatch_get_main_queue(), ^{ - callback(error ? 1 : 0, statusCode, (const char *)[responseData bytes], callbackdata); + callback(error ? 1 : 0, statusCode, (const char *)[data bytes], callbackdata); }); } ]; diff --git a/base/sources/iron.h b/base/sources/iron.h index 0e3061b1..6d134f42 100644 --- a/base/sources/iron.h +++ b/base/sources/iron.h @@ -1399,8 +1399,8 @@ void _iron_http_request(string_t *url, i32 size, void (*callback)(char *, buffer url_path[j] = curl[i + 8 + j]; } url_path[j] = 0; - #ifdef IRON_ANDROID // TODO: move to iron - android_http_request(curl, url_path, NULL, 443, true, 0, NULL, &_http_callback, cbd); + #ifdef IRON_ANDROID + iron_http_request(curl, url_path, NULL, 443, true, 0, NULL, &_http_callback, cbd); #elif defined(IRON_LINUX) // TODO #else