2012-02-08 8 views
1

私のアプリ用のiOSネットワーキングライブラリの選択に関するいくつかの提案があります。iOSネットワーキングライブラリの提案

私のニーズは、以下のとおりです。

  1. は、非同期リクエスト(GETとPOST)とを送信し、ネットワークがダウンしているエラーをユーザに知らせるためにUIAlertViewを表示します。
  2. シンプルな同期要求(GET)を送信し、ネットワークがダウンしている場合は上記と同じ操作を行います。

誰が提案する、いくつかのlibを持っていますか? (ASIHTTPRequestは、もはやサポートされていません)おそらく、このlibにいくつか良いdocがあると良いでしょう。私はiOSの初心者です。

ありがとうございました。

答えて

2

私はこのブログの記事の下部にある選択肢の良いリストがありRestKit https://github.com/RestKit/RestKit

について良いことを聞きました。 http://allseeing-i.com/[request_release];

私は前にASIHTTPRequestをのみ使用しました、そしてそれはベンCopseyによって開発されて長くはないにも関わらず、彼はまだプル要求やものをマージしているように、それが見えます。それは多くの人々によって使用されている、私はコミュニティがそれをピックアップする場合は驚かないだろう。 iOSの少なくとももう1つのバージョンではおそらく安全です。

+0

RestKitはASIとは少し異なります.JSON応答を自動的にオブジェクトグラフに変換するための同期フレームワークです。 OPが何をしようとしているのかは間違いありません。 –

+0

@Randallどのように「インターネット接続なし」の状況を管理していますか? –

1

本当にこのためのライブラリは必要ありません。

同期G​​ET要求を送信するに用いてアラートを提示する、responseDataがゼロであるか、またはエラーがゼロでない場合、いずれの場合においても

//set up the POST URL and params 
NSURL *postURL = [NSURL URLWithString:@"http://somesite.com/somepath"]; 
NSString *postParams = @"foo=bar&hello=world"; 

//create the request - this bit is the same for every post 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:postURL]; 
[request setHTTPMethod:@"POST"]; 
[request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
NSData *data = [postParams dataUsingEncoding:NSUTF8StringEncoding]; 
[self addValue:[NSString stringWithFormat:@"%i", [data length]] forHTTPHeaderField:@"Content-Length"]; 
[self setHTTPBody:data]; 

//get the response 
NSError *error = nil; 
NSURLResponse *response = nil; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

:同期POSTリクエストを送信する

//set up the GET URL and params 
NSURL *getURL = [NSURL URLWithString:@"http://somesite.com/somepath?foo=bar"]; 

//create the request 
NSURLRequest *request = [NSURLRequest requestWithURL:getURL]; 

//get the response 
NSError *error = nil; 
NSURLResponse *response = nil; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

を以下:

[[[[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] show]; 
+0

パラメータをエスケープする必要があることを忘れないでください。そうでなければ、引数に '&'のようなものが変数の解析を中断します。 – Randall

+1

良い点。私は、URL安全なクエリ文字列を作成するための便利なミニライブラリを書いています(stringByAddingPercentEscaping:メソッドの使用に関するよく文書化された問題を避けてください):https://github.com/nicklockwood/URLUtils –

+0

このリンクには何が起こったのですか? –

1

彼は非同期要求ts。

私はAFNetworkingまたはGCNetworkKit(最後のものは自分である)を示唆しています。どちらのライブラリも非常に使いやすく、強力です。

私はAFNetworkingが同期ネットワーク要求を提供しているとは思いません。まあ、少なくとも私はしません。とにかくやってはいけません。 どちらのライブラリもエラー処理をサポートしています。 UIAlertViewの実装には問題ありません。

あなたはGitHubで見つけることができます。それらを検索するだけです。これが役に立ちますようお願いいたします:)

+0

私はAFNetworkingを探して、その使い方を見ました。しかし、私はまだ(インターネット接続のような)エラーを処理する方法を見つけることはできません。あなたはそれを行うためのいくつかの参照を知っていましたか? –

+0

AFNetworkingではエラー処理が非常に簡単です。このhttps://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking/AFHTTPRequestOperation.hを見てください。最後の方法:) –

+0

インターネット接続がなく、アラートが表示されたときに、そのメソッドをハンドルに使用する必要がありますか?ありがとう。 –