2011-11-12 8 views
0

iPhoneからPHPへのHTTPリクエストを使用して、ビルドしようとしているアプリケーションを使用する必要があります。 PHPスクリプトは文字列を返します。 ASIHTTPRequestについて多くの人が話していましたが、iOS5では動作しません。私はApple Developerのドキュメントを見てきましたが、NSURLRequestの使い方は分かりません。この私が、現時点で持っているものです。Objective-C HTTPリクエストを取得するiOS 5

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] init]; 
[req setURL:[NSURL URLWithString:@"http://location.of.my.php.script"]]; 
[req setHTTPMethod:@"GET"]; 
[req setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[req setHTTPBody:postData]; 

基本的に私が何をしたいのかは、HTTPリクエストを行う例のURLを送っている:「http://hellothere.com/myscript.php?options=Type &タイプ= FOO、その後、私のPHPスクリプトを持っている: 場合($ _ GET [ 'オプション'] == '種類'){ は//文字列をいくつかのものを行うと戻り }

は誰もが私を指すことができますNSMutableURLRequestやNSURLConnectionの使い方について正しい方向を教えてもらえますか?誰かが非常に基本的なチュートリアルを教えてくれますか?

感謝

+3

ASIHTTPRequestは実際にiOS 5で動作します。私はそれを使用しています。 – nicholjs

+0

ASIHTTPRequestはiOS 5で動作します。 – jbat100

+0

ARCを使用している場合は動作しません。 – Stevus

答えて

1

私は、iOS 5にこのようASIHTTPRequest使用しています:

あなたはASIHTTPRequestDelegateメソッドを実装する必要があります。

ASIFormDataRequest *asiRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]]; 

[asiRequest setPostValue:somPostValue]; 

asiRequest.delegate = self; 
[asiRequest startAsynchronous]; 

そして、あなたが応答を展開代表者:このような要求を行います。これは、応答がJSONで行われていることを前提としています。

- (void)requestFinished:(ASIHTTPRequest *)request {  
    // Parse Data 
    NSString *responseString = [request responseString]; 
    NSDictionary *parsedData = [responseString JSONValue]; 
    // Do whatever you want with this data 
} 

- (void)requestFailed:(ASIHTTPRequest *)request { 
    NSError *error = [request error]; 
    NSLog(@"requestFailed: %@", error); 
} 
+0

ありがとう、私はただばかげていた!だから、レスポンスが単なる文字列であれば、どうすればいいでしょうか?私はNSDictionaryクラスを理解しているかどうか分からない。 – KerrM

+0

レスポンスは通常、私の経験からXMLまたはJSON形式で提供されます。私はあなたが「ただの弦」とは何を意味するのか分かりません。しかし、あなたが行うことができます:NSString * responseString = [request responseString]; NSLog(@ "%@"、responseString);コンソールが応答文字列として出力する内容を参照してください。 – nicholjs

+0

メソッド-JSONValue:はresponseStringを受け取り、JSON応答をNSDictionaryクラスに変換します。 – nicholjs

関連する問題