Objective-C
必要要件
Unirestクライアントライブラリでは、XcodeプロジェクトでARC(Automatic Reference Counting)を有効にする必要があります。ARCを有効にするには、プロジェクトまたはターゲットを選択して[Build Settings(設定)]に移動し、[Apple LLVM compiler 3.0 - Language]セクションで[Objective-C Automatic Reference Counting]を有効にします。
XcodeでARCを有効にする
既存のプロジェクトには、コードをARCに変換するツールがXcodeに用意されています。Edit -> Refactor -> Convert to Objective-C ARCから入手してください。
インストールとリクエスト
Objective-CのUnirestライブラリは、GitHubからダウンロードするかレポジトリをクローンして、フォルダをプロジェクトにインポートしてください。他のインストール方法にはCocoaPodsがあります。
CocoaPodsの使用
CocoaPodsを使用する場合は、プロジェクトフォルダにPodfileを作成してください。
Shell
$ edit Podfile
platform :ios, '5.0'
pod 'Unirest', '~> 1.1.4'
pod installを実行します。プロジェクトをビルドする際は、プロジェクトファイルではなく、必ずXcode workspaceから作業してください。
Shell
$ open App.xcworkspace
依存関係の追加が可能です。
Objective-C
#import <UNIRest.h>
NSDictionary *headers = @{@"Authorization": @"", @"X-RapidAPI-Key": @API_KEY, @"Content-Type": @"application/x-www-form-urlencoded"};
UNIUrlConnection *asyncConnection = [[UNIRest post:^(UNISimpleRequest *request) {
[request setUrl:@API_URL];
[request setHeaders:headers];
}] asJsonAsync:^(UNIHTTPJsonResponse *response, NSError *error) {
NSInteger code = response.code;
NSDictionary *responseHeaders = response.headers;
UNIJsonNode *body = response.body;
NSData *rawBody = response.rawBody;
}];
ファイルのアップロード
Objective-CでUnirestを使用してリクエストを行い、ファイルをアップロードするには、NSURLオブジェクトを作成し、UNISimpleRequestを使用してパラメータ値として渡してください。
Objective-C
#import <UNIRest.h>
NSURL *urlcontent = [NSURL URLWithString:@"/path/to/file"]
NSDictionary *headers = @{@"X-RapidAPI-Key": @API_KEY};
NSDictionary *parameters = @{@"content": urlcontent};
UNIUrlConnection *asyncConnection = [[UNIRest post:^(UNISimpleRequest *request) {
[request setUrl:@API_KEY];
[request setHeaders:headers];
[request setParameters:parameters];
}] asJsonAsync:^(UNIHTTPJsonResponse *response, NSError *error) {
NSInteger code = response.code;
NSDictionary *responseHeaders = response.headers;
UNIJsonNode *body = response.body;
NSData *rawBody = response.rawBody;
}];
高度な設定
Unirest-Objective-Cを使用する際の高度な設定についてご案内します。
タイムアウトの設定
タイムアウト値(秒単位)をカスタマイズすることができます。
Objective-C
[UNIRest timeout:2];
デフォルトのタイムアウト値は60に設定されています。
デフォルトのリクエストヘッダーの設定
リクエストにデフォルトのヘッダーを設定することができます。
Objective-C
[UNIRest defaultHeader:@"Header1" value:@"Value1"];
[UNIRest defaultHeader:@"Header2" value:@"Value2"];
デフォルトヘッダーはいつでも無効にすることができます。
Objective-C
[UNIRest clearDefaultHeaders];