문제점을 파악하는 데 도움이되는 정보를 찾고 있습니다. 이미지를 서버에 게시/업로드하는 것과 관련된 모든 링크를 실제로 살펴 봤지만 내 코드 작업을 수행하는 것으로 보이는 것은 없습니다.매개 변수가있는 이미지 게시 - AFNetworking 3.1 및 목표 c (Xcode 8)
2 가지 옵션을 ... 다른 방법으로 게시했습니다 ... 주석 처리 된 코드는 ... 내 요청이 서버에 공백으로 표시됨을 나타냅니다.
다른 옵션 인 appendPartWithFormData, appendPartWithFileData를 사용해 보았습니다.
옵션 1
NSError * error; 2
NSError* error;
NSData *jsonInputData = [NSJSONSerialization dataWithJSONObject:[requestParameter valueForKey:@"Param"] options:0 error:&error];
NSString *jsonInputString = [[NSString alloc] initWithData:jsonInputData encoding:NSUTF8StringEncoding];
NSDictionary* params = @{@"request": jsonInputString };
AFURLSessionManager *manager1 = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:[NSString stringWithFormat:@“XXXXXXX”] parameters:nil error:nil];
req.timeoutInterval= [[[NSUserDefaults standardUserDefaults] valueForKey:@"timeoutInterval"] longValue];
// [req setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[req setValue:@"application/json" forHTTPHeaderField:@"Accept"];
// [req setHTTPBody:[jsonInputString dataUsingEncoding:NSUTF8StringEncoding]];
NSMutableData *body = [NSMutableData data];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"profile_pic\"; filename=\"pic.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:self.imageData];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[req addValue:contentType forHTTPHeaderField: @"Content-Type"];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"request\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:jsonInputString] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// close form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[req setHTTPBody:body];
[[manager1 dataTaskWithRequest:req completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSLog(@"Reply JSON: %@", responseObject);
if ([responseObject isKindOfClass:[NSDictionary class]]) {
//blah blah
}
} else {
NSLog(@"Error: %@, %@, %@", error, response, responseObject);
}
}] resume];
전화를 걸고 실제로 파일을 저장합니다. 결국 어떤 형태의 자격 인증을 사용합니다. – Alex
고마워 알렉스 .. 서버가 Java로 구현되어 있고 Postmanplugin에서 동일한 요청을 게시 할 때 .. formdata에 첨부 된 png 파일과 함께 ... 요청이 잘 진행되고 성공적인 응답을받습니다. – Vijaya