AFHTTPRequestOperationManager nach mehrteiliger Anforderung funktioniert nicht

Hier ist die Vorlage, die ich aus dem Git Doc verwende

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

Hier ist, wie ich es benutze

-(void)postMultipartToServer
{
    if (!self.destinationUrl) {
        return;
    }

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSLog(@"IS dictionary empty? %@", self.textDictionary);

    [manager POST:self.destinationUrl
       parameters:self.textDictionary
    constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        if ([self.imageDictionaries count]>0)
            for (NSDictionary *imgDic in self.imageDictionaries) {
                [formData appendPartWithFileData:UIImagePNGRepresentation([imgDic objectForKey:@"image"])
                                            name:[imgDic objectForKey:@"name"]//@"image"
                                        fileName:[imgDic objectForKey:@"fileName"]//@"image.png"
                                        mimeType:[imgDic objectForKey:@"mimeType"]//@"image/png"
                 ];
            }


    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
}

Aus irgendeinem Grund werden die Bilder erfolgreich auf den Server hochgeladen, die Textteile jedoch nicht. Also hier ist mein Textwörterbuch

 NSDictionary *textDictionary = @{
                                 @"userid”:self.userid,
                                 @"phone":self.phone,
                                 @"token”:self.userToken,
                                 @“age”:self.ageAsString,
                                 @“spouse”:self.spouse,
                                 @"isFamouse”:@”true"};

Der Server beschwert sich weiterhin darüberphone ist beispielsweise null. Wenn ich mir die Server Logs ansehe, kommen keine Daten reintextDictionary macht es auf den Server.

Bevor jemand sagt, es ist mein Server: iOS ist nicht der einzige Client. Alle anderen Clients funktionieren einwandfrei. Aus welchem Grund auch immer, dietextDictionary wird nicht gesendet.

Ich begrüße jede Hilfe von jemandem, der mit AFHTTPRequestOperationManager vertraut ist.

Hier ist das Fehlerprotokoll

Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: internal server error (500)" UserInfo=0x170477840 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x178225140> 

Als ich versuchte, den Fehler zu stoppen, nahm ich die Bearbeitung vor, änderte sie jedoch nicht: Ich fügte hinzu

AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
[policy setAllowInvalidCertificates:YES];

AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
[operationManager setSecurityPolicy:policy];
operationManager.requestSerializer = [AFJSONRequestSerializer serializer];
operationManager.responseSerializer = [AFJSONResponseSerializer serializer];

FÜR REFERENZEN IST HIER DER ÄQUIVALENTE ANDROID-CODE, DER OHNE PROBLEM FUNKTIONIERT

public static void saveTextsAndImagesOnServer(List<byte[]> images, long someID1, String servingUrl, boolean someFlag)
        throws ClientProtocolException, IOException {
    Log.d(TAG, "saveTextsAndImagesOnServer started ");
    HttpClient httpClient = new DefaultHttpClient();
    HttpPost postRequest = new HttpPost(servingUrl);
    MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

    AdditionData extr = AdditionData.getInstance();
    reqEntity.addPart("red", new ByteArrayBody(("" + extr.getred()).getBytes(), "red"));
    reqEntity.addPart("yellow", new ByteArrayBody(extr.getyellow.getBytes(), "yellow"));
    reqEntity.addPart("green", new ByteArrayBody(extr.getgreen().getBytes(), "green"));
    reqEntity.addPart("blue", new ByteArrayBody((extr.getblue()).getBytes(), "blue"));
    reqEntity.addPart("someID1", new ByteArrayBody(("" + someID1).getBytes(), "someID1"));
    if (someFlag) {
        reqEntity.addPart("someFlag", new ByteArrayBody("true".getBytes(), "someFlag"));
    }
    int i = 0;
    for (byte[] img : images) {
        ByteArrayBody image = new ByteArrayBody(img, "img" + i++ + ".png");
        reqEntity.addPart("image", image);
    }
    postRequest.setEntity(reqEntity);
    HttpResponse response = httpClient.execute(postRequest);
    Log.d(TAG, "saveTextsAndImagesOnServer ended with response " + response.toString());
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage