ios - Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’ t 完成

标签 ios objective-c iphone nsjsonserialization

Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x7fac23c3a250 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我正在使用这个代码

NSString *jsonString = [NSString stringWithContentsOfURL:url1 encoding:NSUTF8StringEncoding error:nil];
   //  NSError *err;
    NSLog(@"the jsonString==%@",jsonString);

    NSError *jsonError;
    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

    NSMutableDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data
                                                                 options:NSJSONReadingMutableContainers
                                                                   error:&jsonError];
     NSLog(@"jjsonError=======================%@",jsonError);

让 jsonResponse 为空。我在 jsonString 和 data 中有数据。如何解决这个问题。 我使用了此链接,但它不起作用 Cocoa error 3840 using JSON (iOS)

jsonString 我是这样的

    jsonString ==j==jsonFlickrApi({"sizes":{"canblog":0,"canprint":0,"candownload":0,"size":[{"label":"Square","width":75,"height":75,"source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_s.jpg","url":"https:\/\/www.flickr.com\/photos\/124934434029@N02\/14103359278\/sizes\/sq\/","media":"photo"},{"label":"Large Square","width":"150","height":"150","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_q.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/q\/","media":"photo"},{"label":"Thumbnail","width":"100","height":"66","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_t.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/t\/","media":"photo"},{"label":"Small","width":"240","height":"159","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_m.jpg","url":"https:\/\/www.flickr.com\/photos\/12444934029@N02\/14103359278\/sizes\/s\/","media":"photo"},{"label":"Small 320","width":"320","height":213,"source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_n.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/n\/","media":"photo"},{"label":"Medium","width":"500","height":"332","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/m\/","media":"photo"},{"label":"Medium 640","width":"640","height":"425","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_z.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/z\/","media":"photo"},{"label":"Medium 800","width":"800","height":531,"source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_c.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/c\/","media":"photo"},{"label":"Large","width":"1024","height":"680","source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_239cffa6c4_b.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/l\/","media":"photo"},{"label":"Large 1600","width":"1600","height":1063,"source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_cce6d96d28_h.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/h\/","media":"photo"},{"label":"Large 2048","width":"2048","height":1360,"source":"https:\/\/farm3.staticflickr.com\/2929\/14103359278_c6218398b6_k.jpg","url":"https:\/\/www.flickr.com\/photos\/124934029@N02\/14103359278\/sizes\/k\/","media":"photo"}]},"stat":"ok"})
2015-01-12 13:12:59.320 jsonsamp[1225:690335] 

enter image description here

最佳答案

你试试这个代码,也许它对你来说工作正常。首先,您使用 Advanced REST client 检查 API .

NSString *post =[[NSString alloc] initWithFormat:@"shop_name=%@&title=%@",shopname,chatType];

NSLog(@"PostData: %@",post);

 NSURL *url=[NSURL URLWithString:@"http://localhost/load_tailors"];


NSLog(@"%@",url);

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

//[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];

NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSLog(@"Response code: %ld", (long)[response statusCode]);


if ([response statusCode] >= 200 && [response statusCode] < 300)
{
    NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
    NSLog(@"Response ==> %@", responseData);

    NSError *error = nil;
   jsonData = [NSJSONSerialization
                              JSONObjectWithData:urlData
                              options:NSJSONReadingMutableContainers
                              error:&error];
    NSLog(@"%@",jsonData);

}

关于ios - Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’ t 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27897255/

相关文章:

ios - 从更新函数调用时,自定义 SKShapeNode 未出现在场景中

ios - 使用搜索栏在结果的 UITableView 上显示原始 UITableView

ios - 用于 firebase 信使 Swift 的 UITableViewCell

ios - 更改在界面中创建的 UIView 的框架

iphone - 为什么单击按钮时会出现 "unrecognized selector"错误?

iphone - iPhone 控件中带圆圈的 X 按钮

ios - UICollectionView 的 contentOffset 在重新加载时发生变化

objective-c - 为什么我会收到 MGTwitterEngine 的 HTTP 401 错误?

iphone - UILabel 中的行数

iphone - CoreBluetooth APIMISUSE(发送命令 - 外设未连接)