0

クライアントは私にいくつかのデータを投稿するように頼む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

多分あなたは私が間違っていることを知っていますか?

4

0 に答える 0