2015-06-25 1 views
2

Я новичок в iOS, и я использую следующий код для вызова API.Как отправить JSON String со специальными Charaters в iOS?

-(NSData *)sendDataToServer:(NSString*)url :(NSString*)params 
{ 
    NSString *postDataString = [params stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSLog(@"postDataString :%@",postDataString); 

    NSData *postData = [postDataString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

    NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    NSString *urlReq = [NSString stringWithFormat:@"%@", url]; 
    [request setURL:[NSURL URLWithString:urlReq]]; 
    [request setTimeoutInterval:180]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 

    responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 



    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

    NSLog(@"response in Server: %@",responseString); 
    return responseData; 

} 

Я отправляю следующую строку в качестве параметров вышеприведенного метода. Если я отправлю следующие данные без специальных символов, я получаю ответ от .

Если я добавляю какие-либо специальные чартеры (&) с json, я всегда получаю недействительный ответ, то есть сервер всегда возвращает null.

Так может кто-нибудь, пожалуйста, предоставить какие-либо предложения, чтобы получить правильный ответ при использовании JSON строк со специальными символами, такими как «&» и т.д.,

submited_data={"safty_compliance_fields":[{"safty_compliance_id":"641","fieldName":"sc1","fieldType":"editText","fieldValue":"wedgies Ig"},{"safty_compliance_id":"642","fieldName":"sc2","fieldType":"editText","fieldValue":"het &"}],"status_id":"2","product_detail":[{"dynamic_fields_id":"639","fieldName":"p1","fieldType":"editText","fieldValue":"data1"},{"dynamic_fields_id":"640","fieldName":"p2","fieldType":"editText","fieldValue":"data2"}],"inspection_id":"3","second_level":[{"questions":[{"checkListValue":"NO","checkListCommentValue":"Jgkjgjkj","sub_category_id":"452","checkListName":"sl1"},{"checkListValue":"YES","checkListCommentValue":"jk","sub_category_id":"453","checkListName":"sl2"},{"checkListValue":"YES","checkListCommentValue":"gh","sub_category_id":"455","checkListName":"sl3"},{"checkListValue":"YES","checkListCommentValue":"nm","sub_category_id":"456","checkListName":"sl4"}],"title":"sl1","entity_second_level_entry_id":"130"},{"questions":[{"checkListValue":"YES","checkListCommentValue":"Bonn","sub_category_id":"454","checkListName":"s22"}],"title":"s211","entity_second_level_entry_id":"131"}],"comment":"Jgkjgjkj","status":"Ongoing"} 

ответ

0

Вы не размещаете проценты кодируются струна, но оригинал строка.

Смежные вопросы