0

TwitterAPIからTwitterIDと名前を取得するための次のコードがあります。

{

        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);
        }
}

Wi-Fiネットワーク経由でテストする場合は正常に機能します。ただし、セルラーネットワークでは、次のように応答します。

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

前もって感謝します。

4

1 に答える 1

0

リクエストは3Gで認証される必要があるため、これはこの種のリクエストを行うための最良の方法ではなかったようです。新しいSLRequestを使用すると、リクエストを実行しているアカウントを設定できるため、正常に機能します。

于 2012-09-28T20:34:10.367 に答える