составная часть из данных iOS соответствует ли это коду Android?

#ios

#iOS

Вопрос:

Я пытаюсь сопоставить некоторый код Android с версией iOS. Я не могу получить код Android для сборки, но загружаю apt, и, похоже, он работает, я вообще ничего не вижу в журналах сервера, ничего, nada, nil, zilch, и сервер просто истекает по запросу. Однако я могу успешно общаться с другими конечными точками.

Я как бы застрял на этом этапе. Внутренний сервер, поддерживаемый neo4j.

С данными изображения есть ли правильный способ их отправки??? Я пробовал использовать шестнадцатеричную строку NSData непосредственно из файла в качестве закомментированного кода, я пробовал NSData с кодировкой Base64 с (out) разрывами строк и всеми их вариантами.

Соответствует ли код Android коду iOS …? Отмечая, что я бесконечно с ним возился.

Код Android:

     HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(Constants.WebServiceEndPoints.IMAGE_ADD_URL);
    org.apache.http.HttpResponse response;
    PostItemDto postItemDto = new PostItemDto();
    try {
        createFingerprint(postItem);
        File image = new File(postItem.binaryUri.getPath());
        FileInputStream fis = new FileInputStream(image);
        InputStreamBody isb = new InputStreamBody(new ByteArrayInputStream(IOUtils.toByteArray(fis)), FILE_DATA);
        MultipartEntity multipartEntity = new MultipartEntity();
        multipartEntity.addPart(FILE_DATA, isb);
        multipartEntity.addPart("apiKey", new StringBody(API_KEY));
        multipartEntity.addPart(LOGIN_ID, new StringBody(postItem.loginId));
        multipartEntity.addPart(TITLE, new StringBody(postItem.title));
        multipartEntity.addPart(DESCRIPTION, new StringBody(postItem.description));
        multipartEntity.addPart(POST_TYPE, new StringBody(String.valueOf(postItem.postType)));
        multipartEntity.addPart(RATING, new StringBody(String.valueOf(postItem.rating)));
        multipartEntity.addPart(LAT, new StringBody(String.valueOf(postItem.lat)));
        multipartEntity.addPart(LON, new StringBody(String.valueOf(postItem.lon)));
        multipartEntity.addPart(TIME, new StringBody(String.valueOf(postItem.time)));
        multipartEntity.addPart(FINGERPRINT, new StringBody(String.valueOf(postItem.fingerprint)));

        httpPost.setEntity(multipartEntity);
        response = httpClient.execute(httpPost);
        final InputStream responseStream = response.getEntity().getContent();
        String responseString = IOUtils.toString(responseStream);
 

Код iOS:

     [manager POST:serviceURL parameters:orderedDict  constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
     {
         NSString *outputPostImageStr = [imageData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
         // [formData appendPartWithFileData:imageData name:nameStr fileName:fileName mimeType:mimeTypeString ];
         [formData appendPartWithFormData:outputPostImageStr name:@"postImage" ];
         [formData appendPartWithFormData:[orderedDict valueForKey:@"apiKey" ] name:@"apiKey" ];
         [formData appendPartWithFormData:[NIL_TO_STRING(loginId) dataUsingEncoding:NSUTF8StringEncoding] name:@"loginId"   ];
         [formData appendPartWithFormData:[NIL_TO_STRING(post.title) dataUsingEncoding:NSUTF8StringEncoding] name:@"title"  ];
         [formData appendPartWithFormData:[NIL_TO_STRING(post.descriptionStr) dataUsingEncoding:NSUTF8StringEncoding ] name:@"description"  ];
         [formData appendPartWithFormData:[NIL_TO_STRING(post.postType) dataUsingEncoding:NSUTF8StringEncoding ] name:@"postType"  ];
         [formData appendPartWithFormData:[[post.rating stringValue] dataUsingEncoding:NSUTF8StringEncoding ] name:@"rating"  ];
         [formData appendPartWithFormData:[[[NSNumber numberWithDouble:userLocation.coordinate.latitude]  stringValue] dataUsingEncoding:NSUTF8StringEncoding ] name:@"lat"  ];
         [formData appendPartWithFormData:[[[NSNumber numberWithDouble:userLocation.coordinate.longitude] stringValue] dataUsingEncoding:NSUTF8StringEncoding ] name:@"lon"  ];
         [formData appendPartWithFormData:[[self timeSince1970] dataUsingEncoding:NSUTF8StringEncoding ] name:@"time"  ];
         [formData appendPartWithFormData:[ [orderedDict valueForKey:@"fingerprint"] dataUsingEncoding:NSUTF8StringEncoding ] name:@"fingerprint"  ];


     }
          success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         successBlock(YES);
     }
          failure:^(AFHTTPRequestOperation *operation, NSError *error)
     {
         [self showConnectionError];
         DLog(@"error: %@", error);
         errorBlock(error);
     }];
 

Комментарии:

1. Я вижу начало блока try в вашем коде Android; вы случайно не получаете исключение?

2. спасибо за комментарий, но нет, у меня также есть попытка / уловка вокруг кода iOS.. И уловы регистрируют все, что угодно.. Я думаю, что на стороне сервера происходит какая-то недокументированная черная магия, которая работает только с версией Android. Это код Android, который работает с iOS, просто истекает время ожидания без сообщения журнала сервера, он просто сидит там и ждет…

3. Что, какая версия работает, а какая нет? Ваш первоначальный вопрос неясен. Вы также можете попробовать использовать HTTP-прокси (например, Charles Proxy), чтобы увидеть запрос, который делают ваши приложения, и ответы от сервера.