2014-12-09 1 views
0

Я внедрил этот код. Когда я запускаю его в первый раз, он дает ответ. Но когда я запускаю его во второй раз, он дает ошибку, как ....Ошибка при анализе Curl Api

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x178265540 {NSDebugDescription=No value. 

Но Всякий раз, когда я удалил и восстановить это дает ответ.

NSMutableArray *data=[[NSMutableArray alloc]initWithObjects:@"type",@"st_eml",@"st_pwd",nil]; 
 
    NSMutableArray *value=[[NSMutableArray alloc]initWithObjects:@"normal", @"Huhn",@"1234", nil]; 
 
    
 
    //NSArray *keys = [[NSArray alloc ]initWithObjects:@"type", @"st_eml", @"st_pwd", nil]; 
 
    //NSArray *objects = [[NSArray alloc]initWithObjects:@"normal", @"Huhn",@"123", nil]; 
 
    NSDictionary *theRequestDictionary = [NSDictionary dictionaryWithObjects:value forKeys:data]; 
 
    
 
    // Serialize the data 
 
    NSError *error = NULL; 
 
    NSData *theJSONData = [[CJSONSerializer serializer] serializeDictionary:theRequestDictionary error:&error]; 
 
    
 
    
 
    
 
    NSLog(@"Serialization Error: %@", error); 
 
    
 
    // Change the data back to a string 
 
    NSString* theStringObject = [[NSString alloc] initWithData:theJSONData encoding:NSUTF8StringEncoding]; 
 
    
 
    // Determine the length of the data 
 
    NSData *requestData = [theStringObject dataUsingEncoding:NSUTF8StringEncoding]; 
 
    
 
    
 
     NSString* requestDataLengthString = [[NSString alloc] initWithFormat:@"%lu", (unsigned long)[requestData length]]; 
 
    
 
    // Create request to send to web service 
 
    
 
    NSString *strurl = @"http://testing.singletreffen.de/appapi/v1/login"; 
 
    NSString* webStringURL = [strurl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:webStringURL]]; 
 
    [request setHTTPMethod:@"POST"]; 
 
    [request setHTTPBody:requestData]; 
 
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
 
    [request setValue:requestDataLengthString forHTTPHeaderField:@"Content-Length"]; 
 
    
 
    [request setTimeoutInterval:30.0]; 
 
    
 
    // Deserialize the response 
 
    NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse: nil error:&error]; 
 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

ответ

0

Я попробовал ваш код, внесли некоторые изменения в разборе и он работает правильно и дать ответ также

NSMutableArray *data=[[NSMutableArray alloc]initWithObjects:@"type",@"st_eml",@"st_pwd",nil]; 
    NSMutableArray *value=[[NSMutableArray alloc]initWithObjects:@"normal", @"Huhn",@"1234", nil]; 

    NSDictionary *theRequestDictionary = [NSDictionary dictionaryWithObjects:value forKeys:data]; 

    // Serialize the data 
    NSError *error = nil; 
    NSData *theJSONData = [NSJSONSerialization dataWithJSONObject:theRequestDictionary options:0 error:&error]; 


    NSLog(@"Serialization Error: %@", error); 

    // Change the data back to a string 
    NSString* theStringObject = [[NSString alloc] initWithData:theJSONData encoding:NSUTF8StringEncoding]; 

    // Determine the length of the data 
    NSData *requestData = [theStringObject dataUsingEncoding:NSUTF8StringEncoding]; 


    NSString* requestDataLengthString = [[NSString alloc] initWithFormat:@"%lu", (unsigned long)[requestData length]]; 

    // Create request to send to web service 

    NSString *strurl = @"http://testing.singletreffen.de/appapi/v1/login"; 
    NSString* webStringURL = [strurl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:webStringURL]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody:requestData]; 
    [request setHTTPBody:requestData]; 
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    [request setValue:requestDataLengthString forHTTPHeaderField:@"Content-Length"]; 

    [request setTimeoutInterval:30.0]; 

    // Deserialize the response 
    NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse: nil error:&error]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding]; 
    NSLog(@"LOG : %@", returnString); 
+0

Некоторое время он дает, но какое-то время все еще такая же проблема. –