AFNetworking блок кода не выполняется

1

Я знаю, что общие вопросы не разрешены на этом сайте - но у меня есть проблема, которая на самом деле не связана с моим кодом. Это одна из тех компьютерных проблем, когда мой код работал минуту, а не работал дальше - и я ничего не менял. Я собираюсь опубликовать то, что, по моему мнению, является соответствующим кодом, но я не получаю никаких сообщений об ошибках, либо в моей консоли отладки в XCode либо на стороне сервера в журналах ошибок apache2.

Возможно соответствующий код:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    UIImageWriteToSavedPhotosAlbum(info[UIImagePickerControllerOriginalImage], nil, nil, nil);

    NSString * uploadURL = @"http://192.168.1.4/upload.php";
    NSLog(@"uploadImageURL: %@", uploadURL);
    NSData *imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);

    NSString *queryStringss = [NSString stringWithFormat:@"%@",uploadURL];
    queryStringss = [queryStringss stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    //manager.responseSerializer.acceptableContentTypes = nil;
    manager.responseSerializer=[AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/plain"];

    NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];

    NSString *usernameEncoded = [[userdefaults objectForKey:@"pfuser"]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSDictionary *params = @{@"username": usernameEncoded, @"count": [userdefaults valueForKey:@"count"]};

    [manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:imageData name:@"file" fileName:@"file.jpeg" mimeType:@"image/jpeg"];
        }
          success:^(AFHTTPRequestOperation *operation, id responseObject) {
              NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
              NSInteger count = [userdefaults integerForKey:@"count"];
              NSNumber *stored = [[NSNumber alloc] initWithInt:count];
              count++;
              [userdefaults setInteger:count forKey:@"count"];


              GMSMarker *marker3 = [[GMSMarker alloc] init];
              marker3.position = mapView_.myLocation.coordinate;
              marker3.title = [userdefaults objectForKey:@"pfuser"];
              marker3.map = mapView_;

              PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude:mapView_.myLocation.coordinate.latitude longitude:mapView_.myLocation.coordinate.longitude];

              PFObject *pointstore = [PFObject objectWithClassName:@"MapPoints"];
              pointstore[@"title"] = [userdefaults objectForKey:@"pfuser"];
              pointstore[@"location"] = point;
              pointstore[@"count"] = stored;

              [pointstore saveEventually:^(BOOL succeeded, NSError *error) {

                  if (error) {
                      NSLog(@"Error");
                  }
                  else {
                      dispatch_async(dispatch_get_main_queue(), ^(void){
                          mapView_.settings.myLocationButton = YES;
                      });
                  }
              }];
          }
          failure:^(AFHTTPRequestOperation *operation, NSError *error) {
              NSLog(@"Error: %@ ***** %@", operation.responseString, error);
          }];

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

Выше - это код, который должен выполняться. Кажется, что все это до тех пор, пока [manager POST:queryStringss parameters:params...

Я не вижу сообщений о успехе или неудаче NSLog, он просто бросается в глаза... приложение не разбивается, хотя... приложение продолжает работать нормально.

Любая помощь будет высоко оценена сегодня утром (я бы хотел работать с ней с кем-то, кто знает, что они делают, в чате или что-то в этом роде). Заранее спасибо!

ОБНОВИТЬ

Код на стороне сервера PHP:

<?php

header("Content-Type: application/json");

$username = $_POST['username'];
$count = $_POST['count'];
$base64string = base64_encode(file_get_contents("images/".$username."/".$count."/".$username."file".$count.".jpeg"));
echo json_encode(array("image" => $base64string));

?>

ОБНОВИТЬ

Вот где я сейчас объявляю manager:

#import "ViewController.h"
#import "SignUpController.h"
#import <Parse/Parse.h>
#import "AFHTTPRequestOperation.h"
#import "AFHTTPRequestOperationManager.h"
@import GoogleMaps;

typedef void (^CompletionHandlerType)();

@interface ViewController ()

@end


@implementation ViewController {
    GMSMapView *mapView_;
    BOOL firstLocationUpdate_;
    CLLocationManager *locationManager;
    UIImageView *image;
    UIButton *respondButton;
    AFHTTPRequestOperationManager *manager;
}

...

ОБНОВИТЬ

После некоторой замечательной помощи TheEye - мы выяснили, с почтальоном (chrome extension), что по какой-то причине приложение просто не находит страницу... и я получаю ответ 404 (от почтальона). Я до сих пор не понял, почему это происходит, больше помощи будет очень благодарна... но я не могу сразу ответить, поскольку я устал.

  • 1
    Вы не можете пинговать людей, которые не ответили / не оставили комментарий к вашему вопросу. - И это не похоже на php?
  • 0
    Можете ли вы попробовать написать «[picker dismissViewControllerAnimated: YES завершение: NULL];» во-первых.
Показать ещё 22 комментария
Теги:
iphone
afnetworking

2 ответа

0

Глупый брандмауэр должен был случайно заблокировать материал. Я отключил брандмауэр, и все снова заработало.

-1
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissViewControllerAnimated:YES completion:nil];

UIImage *fetchedImage = (UIImage*) [info objectForKey:UIImagePickerControllerOriginalImage];

 NSData *imageData = UIImageJPEGRepresentation(fetchedImage,0.0);

 [self SetUserProfilePhotoData:imageData];

}


-(void)SetUserProfilePhotoData:(NSData*)imageData
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval = 15000000000000;
manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
// [serializer setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;





NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];

NSString *usernameEncoded = [[userdefaults objectForKey:@"pfuser"]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSDictionary *params = @{@"username": usernameEncoded, @"count": [userdefaults valueForKey:@"count"]};

NSMutableURLRequest *request =
[serializer multipartFormRequestWithMethod:@"POST" URLString:@"http://192.168.1.4/upload.php" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    //  [formData appendPartWithFormData:imageData name:@"image"];


    [formData appendPartWithFileData:imageData name:@"image" fileName:"file.jpeg" mimeType:@"application/octet-stream"];


} error:nil];


AFHTTPRequestOperation *operation =
[manager HTTPRequestOperationWithRequest:request
    success:^(AFHTTPRequestOperation *operation, id responseObject) {

                                      dispatch_async(dispatch_get_main_queue(), ^{
                                     [SVProgressHUD showSuccessWithStatus:@"Uploaded!"];
                                      });                                        NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
                              NSLog(@"Success %@", string);



                                     [[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"UserProfilePic"];

                                 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                     [SVProgressHUD showErrorWithStatus:@"Error in uploading!"];
                                     NSLog(@"Failure %@", error.description);
                                 }];

[operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,
                                    long long totalBytesWritten,
                                    long long totalBytesExpectedToWrite) {


   // NSLog(@"Wrote %lld/%lld", totalBytesWritten, totalBytesExpectedToWrite);

    float progress =  (float)totalBytesWritten/(float)totalBytesExpectedToWrite;
     [SVProgressHUD showProgress:progress status:[NSString stringWithFormat:@"Uploading %@%%",[NSString stringWithFormat:@"%.0f", progress*100]] maskType:SVProgressHUDMaskTypeClear];

}];

// 5. Begin!
[operation start];


}
  • 0
    Я добавил ваши параметры и URL .php
  • 0
    кажется, что вы саркастичны с временным интервалом ... собираемся понизить это ... если вы не можете объяснить временной интервал
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню