Objective-C


必要要件

Unirestクライアントライブラリでは、XcodeプロジェクトでARC(Automatic Reference Counting)を有効にする必要があります。ARCを有効にするには、プロジェクトまたはターゲットを選択して[Build Settings(設定)]に移動し、[Apple LLVM compiler 3.0 - Language]セクションで[Objective-C Automatic Reference Counting]を有効にします。

alt text

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];