2017-06-01 4 views
0

私はJSONデータをフェッチし、NSURLのセッションを使用してそれを解析しようとしているが、ヌルたびに取得しています - また、それに加えて、私はObject-CでNSUrlセッションを使用してデータを取得する方法は?

NSError *error; 

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; 
    NSURL *url = [NSURL URLWithString:@"https://dl.dropboxusercontent.com/s/2iodh4vg0eortkl/facts.json"]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
                  cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:60.0]; 

    [request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"]; 
    [request addValue:@"text/plain" forHTTPHeaderField:@"Accept"]; 

    [request setHTTPMethod:@"GET"]; 


    NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: @"Value", @"Key", nil]; 

    NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error]; 

    [request setHTTPBody:postData]; 


    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 


     NSLog(@"Resopnse == %@",response); 

     if (response != nil) { 
      NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 

      NSLog(@"JSon dict === %@",jsonDict); 
     } 

    }]; 

    [postDataTask resume]; 

は私が知っているかもしれないテーブルビュー内のすべてのデータは、私が間違って何をやっているOのショーをしたいです同じことをするための他の良い方法ですか?

+0

nullとは何ですか? '応答'? 'データ'? 'jsonDict'?通常、HTTPBodyにGETのためのパラメータを入れません。 – Larme

答えて

0

次のコードを試してください。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setURL:[NSURL URLWithString:@"https://dl.dropboxusercontent.com/s/2iodh4vg0eortkl/facts.json"]]; 
    [request setHTTPMethod:@"GET"]; 
    [request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"]; 
    [request addValue:@"text/plain" forHTTPHeaderField:@"Accept"]; 

     NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
     [[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
     NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
     NSData * responseData = [requestReply dataUsingEncoding:NSUTF8StringEncoding]; 
     NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
     NSLog(@"requestReply: %@", jsonDict); 
    }] resume]; 
+0

テーブルビューをプログラマチックに作成し、JSONレスポンスのデータを非同期で画像付きのtableviewに表示する方法の例がありますか? – sss

+0

googleでこれを行う必要があります。:)しかしここには役に立つリンクhttps://developer.apple .com/library/content/documentation/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html –

0

下記のコードを使用してください。あなたの問題を解決することを願っています。

NSString *strUrl = [NSString stringWithFormat:yourUrl]; 
    NSURL *url = [NSURL URLWithString:strUrl]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [NSURLConnection sendAsynchronousRequest:request 
             queue:[NSOperationQueue mainQueue] 
          completionHandler:^(NSURLResponse *response, 
               NSData *data, NSError *connectionError) 
    { 
     if (data.length > 0 && connectionError == nil) 
     { 
      NSDictionary *dicResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; 
      NSLog(@"%@",dicResponse); 
     } 
    }]; 
+0

質問は 'NSURLSession'に対して要求され、NSURLConnection'に対しては要求されません。 –

関連する問題