Проблема при загрузке изображений - кодировка base64 - PullRequest
1 голос
/ 06 декабря 2011

Я передаю строку изображения в кодировке base64 на серверную сторону методом HTTP PUT. Я пытался несколько раз, но в ответ получал сообщение об ошибке. Это сообщение об ошибке, потому что нулевое значение получает на стороне сервера. Я проверил то же самое, в коде Android и там работает нормально. Я прилагаю свой код ниже.

SBJSON *parser = [[SBJSON alloc] init];
NSString *url=[NSString stringWithFormat:@"The URL i am using"] ;   
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];      
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"XXXXX" forHTTPHeaderField:@"USER_AGENT"];

[request setHTTPMethod:@"PUT"]; 
NSString *input=[NSString stringWithFormat:@"abc[image]=%@",base64encodedString];
[request setHTTPBody:[input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];    
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSASCIIStringEncoding];        
NSDictionary *statuses = [parser objectWithString:json_string error:nil];       
[parser release];

[json_string release];  
return statuses;

Я получаю сообщение об ошибке со стороны сервера, например: «xxxxxx.jpg не распознается командой« identifier »».

Пожалуйста, предложите решение.

Наконец-то я обнаружил, что тип содержимого должен быть изменен на «multipart / form-data» из «application / x-www-form-urlencoded». Может кто-нибудь сказать, пожалуйста, как передать Base закодированную строку, используя этот путь? Пожалуйста ... я за этой проблемой в течение последних 20 дней ...

1 Ответ

0 голосов
/ 06 декабря 2011

Может быть разница в подпрограмме Base64. Base64 кодирует одни и те же данные на сервере и iPhone и сравнивает.

При использовании симулятора используйте сетевой слежку, такой как Wireshark на Mac, чтобы увидеть, что на самом деле выходит и полный возврат с сервера. Если вы используете SSL, вы можете использовать приложение Mac Charles для просмотра данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...