1

サーバーにログインしようとしていますが、エラーが発生します。私は SBJSON を使用してリクエストを JSON に変換し、JSON から文字列に変換し、1 つのメソッドを使用してすべての API 呼び出しを行っています。解決策を探しましたが、何も見つかりません。ログインに使用する方法は次のとおりです。

+ (void)requestFromUrl:(NSString *)urlString withType:(NSString *)type withBody:(NSDictionary *)dict
{
    NSURL *url = [NSURL URLWithString:urlString];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setHTTPMethod:type];

    if(dict)
    {
        NSString *jsonString = [dict JSONRepresentation];
        NSData *jsonData = [jsonString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:true];
        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
        [request setHTTPBody:jsonData];
    }

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
     {
         if (error)
         {
             NSLog(@"Error retrieving data: %@", error.description);
         }
         else
         {
             id result = [data JSONValue];
             NSLog(@"Received responce: %@", result);

             [[NSNotificationCenter defaultCenter] postNotificationName:@"ReceivedResponce" object:self userInfo:result];
         }
     }];

誰かが私を助けることができますか?

4

1 に答える 1

1

これ作って:

    NSData *jsonData = [jsonString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:true];

の中へ:

    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

それが役立つかどうかを確認してください。JSON は、ASCII ではなく UTF8 でエンコードする必要があります。

于 2013-06-23T06:34:36.863 に答える