gpt4 book ai didi

ios - iOS-Twitter连接问题:“操作无法完成。 ( cocoa 错误3840。)”

转载 作者:行者123 更新时间:2023-12-01 19:06:16 24 4
gpt4 key购买 nike

我正在创建一个显示我的Twitter时间轴的应用程序。但是我有时会收到以下错误:

Error 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=0x1fd807c0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我正在使用以下代码来检索Twitter的时间轴:
-(void) getTimeLine{

ACAccountStore *account=[[ACAccountStore alloc] init];
ACAccountType *accountType=[account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[activityIndicatorLoadTweets setHidden:NO];
[activityIndicatorLoadTweets startAnimating];
[account requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error)
{
if (granted==YES) {
NSArray *arrOfAccounts=[account accountsWithAccountType:accountType];
if ([arrOfAccounts count]!=0)
{
ACAccount *twitterAccount=[arrOfAccounts lastObject];
NSURL *requestURL=[NSURL URLWithString:@"http://api.twitter.com/1/statuses/home_timeline.json"];
NSMutableDictionary *params=[[NSMutableDictionary alloc] init];
[params setObject:@"20" forKey:@"count"];
[params setObject:@"1" forKey:@"include_entities"];

SLRequest *postRequest=[SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:requestURL parameters:params];

postRequest.account=twitterAccount;

[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
if (responseData==nil) {
NSLog(@"Could not connect. Try Again.");
[self showLabelAndStartTimer];
lblStatus.text=@"Could not connect at the moment. Please try Again.";
[activityIndicatorLoadTweets setHidden:YES];
[activityIndicatorLoadTweets stopAnimating];
}
else{
lblStatus.hidden=YES;
self.arrDataSource=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];

if ([self.arrDataSource count]!=0)
{
dispatch_async(dispatch_get_main_queue(), ^
{
[self.tableTweetsView reloadData];
[activityIndicatorLoadTweets setHidden:YES];
[activityIndicatorLoadTweets stopAnimating];
//[self fetchBollyTweetsFrom:self.arrDataSource];
});
}
}

}];

}
}
else{
NSLog(@"Failure to access acount. Please check your internet connection.");
[activityIndicatorLoadTweets setHidden:YES];
[activityIndicatorLoadTweets stopAnimating];
}


}];

}

请注意,错误描述来自以下行:
self.arrDataSource=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];

该错误大部分是不言而喻的,但是如果我的JSON错误,为什么我有一半的时间获得成功的响应?
当我是iOS编程和使用JSON的新手时,也欢迎对代码提出意见和建议。
谢谢。

最佳答案

与api.twitter.com的连接仅限于TLS / SSL连接。如果您的应用程序仍使用HTTP纯文本连接,则需要对其进行更新以使用HTTPS连接
检查此链接:https://dev.twitter.com/discussions/24239

关于ios - iOS-Twitter连接问题:“操作无法完成。 ( cocoa 错误3840。)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com