2012-04-18 21 views
0

私はこれまでこれを作っています。これは、httpヘッダーでjson Stringリクエストを作成するコードです。私はこのコードを実行するとエラーは表示されません。しかし、私は式の結果が未使用の警告を取得します。このhttpヘッダーを送信した後、Webサービスからの応答を取得する必要があります。Webサービスの応答データを取得

コード:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *nid = @""; 
    NSString *vocab = @""; 
    NSString *inturl = @"testoverview"; 
    NSString *mail = @"[email protected]"; 
    NSString *md5pw = @"4d57e7ef1b7c3f431aca424764e9d786"; 

    NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
            nid, @"nid", 
            vocab, @"vocab", 
            inturl, @"inturl", 
            mail, @"mail", 
            md5pw, @"md5pw",nil]; 
    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error]; 
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

    if (!jsonData) { 
     NSLog(@"Got an error; %@", error); 
      } else if(jsonData) { 

       NSString *url = @"http://www.taenk.dk/services/mobile"; 
       NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; 

       [request setValue:jsonString forHTTPHeaderField:@"X-FBR-App"]; 
       [[NSURLConnection alloc] initWithRequest:request delegate:self]; <-- this line triggers the warning: "Expression result unused" 

       NSLog(@"jsonString %@", jsonString); 

      } 

誰が私のために2つのことを明確にすることができ:

  1. は、Webサービスへの要求次第、このトリガー応答していますか?
  2. 「はい」の場合は、この結果をどのように印刷しますか?

答えて

1

あなたは、あなたは、少なくともデリゲートメソッドconnection:didFailWithError:を実装する必要があります(例えば[con cancel];

後で使用するために

NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:... 

のような結果を変数に割り当てる必要があります。クラス参照では、私はもうconnection:didFinishLoading...を見ません。代わりにsendSynchronousRequest:returningResponse:error:を使用できますか?その場合、結果は正または負になります。

これは私が(このバージョンはARCなしで)データを取得する方法である:

- (void) connection :(NSURLConnection *)conn didReceiveData :(NSData *)data { 
    NSString *msg = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
    [self checkAutoMailReply:msg]; 
    [msg release]; 
} 

msgは、純粋な応答データなしヘッダ又はを含んでいます。

+0

詳細を教えてください。私はObjective-Cで新しいです。私はこれで非同期のアプローチを使用して、デリゲートメソッドを実装し、それらのいくつかを使用しています。問題は、パラメータとしてnsdataを受け取るdidRevieveDataメソッドがあることです。問題は、私がサービスに送信するリクエストから応答データを取得する方法がわかりません。 基本的に私はサービスにリクエストを送信しますが、レスポンスをどのように出力するかはわかりません。 – Lahib

+0

@Lahib私は自分の返信を編集しました。 –

関連する問題