From ac951bfc7a846d801bd44db1faf7554b719e5cdb Mon Sep 17 00:00:00 2001 From: Kipp Hickman Date: Fri, 15 Aug 2014 12:00:49 -0700 Subject: [PATCH] Added ability to add http headers to a STKHTTPDataSource. --- StreamingKit/StreamingKit/STKHTTPDataSource.h | 1 + StreamingKit/StreamingKit/STKHTTPDataSource.m | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/StreamingKit/StreamingKit/STKHTTPDataSource.h b/StreamingKit/StreamingKit/STKHTTPDataSource.h index 628a62f..9bf7002 100644 --- a/StreamingKit/StreamingKit/STKHTTPDataSource.h +++ b/StreamingKit/StreamingKit/STKHTTPDataSource.h @@ -47,6 +47,7 @@ typedef void(^STKAsyncURLProvider)(STKHTTPDataSource* dataSource, BOOL forSeek, +(AudioFileTypeID) audioFileTypeHintFromMimeType:(NSString*)fileExtension; -(id) initWithURL:(NSURL*)url; +-(id) initWithURL:(NSURL *)url httpRequestHeaders:(NSDictionary *)httpRequestHeaders; -(id) initWithURLProvider:(STKURLProvider)urlProvider; -(id) initWithAsyncURLProvider:(STKAsyncURLProvider)asyncUrlProvider; -(NSRunLoop*) eventsRunLoop; diff --git a/StreamingKit/StreamingKit/STKHTTPDataSource.m b/StreamingKit/StreamingKit/STKHTTPDataSource.m index 8a5f4d3..196dd64 100644 --- a/StreamingKit/StreamingKit/STKHTTPDataSource.m +++ b/StreamingKit/StreamingKit/STKHTTPDataSource.m @@ -49,6 +49,7 @@ STKAsyncURLProvider asyncUrlProvider; NSDictionary* httpHeaders; AudioFileTypeID audioFileTypeHint; + NSDictionary* requestHeaders; } -(void) open; @@ -61,6 +62,13 @@ return [self initWithURLProvider:^NSURL* { return urlIn; }]; } +-(id) initWithURL:(NSURL *)urlIn httpRequestHeaders:(NSDictionary *)httpRequestHeaders +{ + self = [self initWithURLProvider:^NSURL* { return urlIn; }]; + self->requestHeaders = httpRequestHeaders; + return self; +} + -(id) initWithURLProvider:(STKURLProvider)urlProviderIn { urlProviderIn = [urlProviderIn copy]; @@ -299,6 +307,12 @@ discontinuous = YES; } + for (NSString* key in self->requestHeaders) + { + NSString* value = [self->requestHeaders objectForKey:key]; + CFHTTPMessageSetHeaderFieldValue(message, (__bridge CFStringRef)key, (__bridge CFStringRef)value); + } + stream = CFReadStreamCreateForHTTPRequest(NULL, message); if (stream == nil)