クライアントは私にいくつかのデータを投稿するように頼むfields: type, description, email, phone, price, location, photo (file attachment). Mime-Type: multipart/form-data
画像以外のすべての分野で成功しています。
次のコードを使用しています:
UIImage *testImage = [UIImage imageNamed:@"landish.jpeg"];
NSDictionary *parametres = @{@"type" : @"Suche",
@"description" : @"Flowers",
@"email" : @"myemail@ya.ru",
@"phone" : @"+565124512645",
@"price" : @"100",
@"location" : @"Gorppingen",
@"image" : testImage};
UIImage *image = param[@"image"];
NSURL *url = [NSURL URLWithString:API_URL_BASE];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
NSMutableDictionary *mutableDict = param.mutableCopy;
[mutableDict removeObjectForKey:@"image"];
param = mutableDict;
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST"
path:@"anzeigen.php"
parameters:param
constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"landish" fileName:@"landish.jpeg" mimeType:@"image/jpeg"];
// etc.
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"Request Successful, response '%@'", responseStr);
completition (YES);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"[HTTPClient Error]: %@", error.localizedDescription);
completition (NO);
}];
[httpClient enqueueHTTPRequestOperation:operation];
テキストフィールドを正常に送信しましたが、iPhone に画像が表示されません。これは、Android アプリから同じ API に対して正常に送信されているため、機能する必要がありますが、その開発者と話すことはできません
nilパラメータを使用して画像のみを送信しようとすると
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST"
path:@"anzeigen.php"
parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"landish" fileName:@"landish.jpg" mimeType:@"image/jpeg"];
// etc.
}];
次のログを取る
2013-10-23 02:41:26.345 ****[2280:c07] [HTTPClient Error]: Expected status code in (200-299), got 400
多分あなたは私が間違っていることを知っていますか?