【问题标题】:Objective C GET method working over WI-FI but not over cellular networkObjective C GET 方法在 WI-FI 上工作,但不在蜂窝网络上工作
【发布时间】:2012-09-07 16:15:09
【问题描述】:

我有以下代码从 Twitter API 获取 twitter Id 和名称:

{

        NSString *StringUrl = [NSString stringWithFormat:@"https://api.twitter.com/1/users/show.json?screen_name=%@",account.username];

        @try {

                NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
                [request setHTTPMethod:@"GET"];
                [request setTimeoutInterval: 15];
                [request setURL:[NSURL URLWithString:StringUrl]];

                NSError *error = [[NSError alloc] init];
                NSHTTPURLResponse *responseCode = nil;

                NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];

                if([responseCode statusCode] != 200){
                    NSLog(@"Error getting %@, HTTP status code %i", StringUrl, [responseCode statusCode]);
                }else{
                    NSLog(@"Good");
                    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
                    NSString *twitterId = [json objectForKey:@"id_str"];
                    NSString *twitterName = [json objectForKey:@"name"];
                }

        }
        @catch (NSException *exception) {
            NSLog(@"No conection: %@",exception.name);
        }
}

通过 wifi 网络测试时可以正常工作;但是通过蜂窝网络,它会响应:

Error getting https://api.twitter.com/1/users/show.json?screen_name=enf_4eva, HTTP status code 400

提前致谢。

【问题讨论】:

    标签: objective-c get twitter httprequest


    【解决方案1】:

    这似乎不是执行此类请求的最佳方式,因为该请求必须通过 3G 进行身份验证。使用新的 SLRequest,我可以设置执行请求的帐户,使其运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 2012-02-01
      • 2018-06-07
      • 2017-07-30
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多