2014-10-07 77 views
0

我試圖把送與身體,但在響應我有一個AFNetworking與看跌期權請求主體

JSON: { 
errorr = "BAD json format"; 
success = 0; 
} 

我試圖使用相同的字符串(JSON數組)作爲我的爲REST Web服務客戶端的代碼,它工作正常,但不是在我的應用程序

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys: carID, @"product_id", firstname.text, @"firstname", surname.text, @"lastname", phone.text, @"telephone", email.text, @"email", orderWithUserInfo, @"options", nil]; 
NSLog(@"JSON: %@", dic); 
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONReadingMutableContainers error:nil]; 
NSLog(@"JSON: %@", jsonData2); 
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding]; 
NSLog(@"jsonData as string:\n%@", jsonString); 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
    [manager.requestSerializer setValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
    [manager.requestSerializer setValue:@"34987598743" forHTTPHeaderField:@"X-Oc-Merchant-Id"]; 
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; 
    AFHTTPRequestOperation *operationA = [manager PUT:@"http://***/api/rest/addorders" parameters:jsonString success:^(AFHTTPRequestOperation *operation, id responseObject) { 

     NSLog(@"JSON: %@", responseObject); 

     //[self showStream:carsList]; 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

     // 4 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                  message:[error localizedDescription] 
                  delegate:nil 
                cancelButtonTitle:@"Ok" 
                otherButtonTitles:nil]; 
     [alertView show]; 
    }]; 

,所以我不知道問題出在哪裏

回答

0

傳遞參數的NSDictionary和經理會處理序列化。

AFHTTPRequestOperation *operationA = [manager PUT:@"http://***/api/rest/addorders" parameters: dic success:^(AFHTTPRequestOperation *operation, id responseObject) { 


    } 

對PUT方法的簽名是:

- (AFHTTPRequestOperation *)PUT:(NSString *)URLString parameters:(NSDictionary *)parameters success:(void (^) (AFHTTPRequestOperation *operation , id responseObject))success failure:(void (^) (AFHTTPRequestOperation *operation , NSError *error))failure; 

所以,你必須通過NSDictioanry代替的NSString。檢查的要求,串行器如果被初始化。

+0

nope,我有同樣的錯誤 – lhawks 2014-10-07 15:05:34

0

我添加了manager.requestSerializer = [AFJSONRequestSerializer serializerWithWritingOptions:dic];並解決了問題