HTTP PUT 메서드를 사용하여 base64로 인코딩 된 이미지 문자열을 서버 측에 전달하고 있습니다. 여러 번 시도했지만 응답으로 오류 메시지가 표시됩니다. 그 오류 메시지는 null 값이 서버 측에 들어가기 때문입니다. 나는 안드로이드 코드와 그 안에서 잘 작동하는 것으로서 같은 것을 체크했다. 나는 아래에 나의 코드를 붙이고있다.이미지 업로드 문제 - base64 인코딩
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은 '식별'명령으로 인식되지 않습니다."
친절하게 해결책을 제안합니다.
마지막으로 "application/x-www-form-urlencoded"에서 콘텐츠 유형을 "multipart/form-data"로 변경해야합니다. 누구든지이 방법을 사용하여 Base 인코딩 된 문자열을 전달하는 방법을 알려주시겠습니까? Pls ... 지난 20 일 동안이 문제의 배경입니다 ...
allowLossyConversion : 데이터에 대한 YES는 좋지 않습니다. 서버 측에서받은 것을 덤프 해보십시오. – ssteinberg
@ssteinberg : 서버 쪽에서 오는 오류 메시지를 추가했습니다. 또한 조언 해 주셔서 감사합니다. 답장을 보내 주셔서 감사합니다. – Praveen