2016-06-08 13 views
1

Ниже приведены кодError Domain = NSCocoaErrorDomain Code = 3840 "Операция не может быть завершена. (Cocoa ошибка 3840.)" (недопустимое значение вокруг символа 0.)

NSDictionary *post = [NSDictionary dictionaryWithObjectsAndKeys: 
    @"signup",@"methodName",_tfName.text,@"name",_tfNickName.text,@"nickname", 
     _dateOfBirth.text, @"birth_date", 
     @"1",@"gender", 
     _tfEmail.text,@"email", 
          _tfPassword.text,@"password", 
          _tfContact.text, @"mobile", 
          _tfCountry.text,@"country", 


          @"Normal",@"social_provider", 
          @"",@"social_accesstoken",@"3",@"sponsor_choice" ,_tfPinCode.text,@"pincode",@"", 
           @"fromLogin",nil]; 

Это фактический процесс размещения данные

NSData *postdata = [NSJSONSerialization dataWithJSONObject:post options:NSJSONWritingPrettyPrinted error:nil]; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://[email protected]"]]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"]; 


    [request setHTTPBody:postdata]; 

    NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 


    if(conn) 
    { 
     NSLog(@"Connection Successful"); 
    } 
    else 
    { 
     NSLog(@"Connection could not be made"); 
    } 


} 

Делегаты URLConnection

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse *)response 
    { 
     NSLog(@"Did Receive Response %@", response); 
     responseData = [[NSMutableData alloc]init]; 
    } 
    - (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data 
    { 
     //NSLog(@"Did Receive Data %@", data); 
     [responseData appendData:data]; 


    } 

Здесь я получаю значение данных Response

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error 
    { 
     NSLog(@"Did Fail"); 
    } 
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection 
    { 
     NSLog(@"Did Finish"); 



     NSError *error = nil; 
     NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:&error]; 

     NSLog(@"Array: %@", jsonArray); 
     // Do something with responseData 
    } 

Фактически, я получаю значение jsonarray как ноль. Даже я получаю значение ответа «Данные, поступающие с сервера».

+1

Не могли бы вы войти 'connectionDidFinishLoading:': 'NSString * ул = [[NSString Alloc] initWithData: кодирование responseData: NSUTF8StringEncoding] '? – Larme

+0

показывает содержимое HTML –

+0

И содержимое кажется действительным (я имею в виду, что вернувшиеся данные верны, а не в отформатированном виде, но имеют ли они смысл)? Тогда это не JSON. Если вы тестируете POSTMan (или что-то подобное), отвечает ли ваша служба JSON? – Larme

ответ

1

Если я отправляю данные Синхронно, то я получил ответ, и даже я получил JSON

NSData *responseData =[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 
     if (!err) 
     { 
      //Getting response from server 
      NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options: NSJSONReadingMutableContainers error: &err]; 

      NSLog(@"%@", jsonArray); 
     }