POST-запрос с AFNetworkings AFHTTPSessionManager интерпретируется как GET на Heroku

Я в настоящее время пытаюсь POST к моему серверу heroku. Локально все работает нормально, но если я изменю свой URL-адрес для AFHttpSessionmanager на приложение heroku, мое приложение больше не будет работать, потому что почтовые запросы интерпретируются как GET-запрос на стороне Heroku.

Вот как я делаю пост-запрос:

NSString * postPath = [NSString stringWithFormat:@"/freetextquestions/%ld/freetextanswers.json",(long)identifier];
        [[AskMeClient sharedClient] POST:postPath parameters: [NSDictionary dictionaryWithObject:self.answerTextField.text forKey:@"text"]
                                      success:^(NSURLSessionDataTask *task, id responseObject) {
                                          NSLog(@"%@", responseObject);
                                          [self dismissViewControllerAnimated:YES completion:nil];
                                      } failure:^(NSURLSessionDataTask *task, NSError *error) {
                                          NSLog(@"%@", error);
                                          UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Ooops ..." message:error.localizedDescription delegate:nil cancelButtonTitle:@"dismiss" otherButtonTitles: nil];
                                          [alert show];

                                      }];

Это мой клиент:

@implementation AskMeClient

+(instancetype)sharedClient {
    static AskMeClient *_sharedClient = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedClient = [[AskMeClient alloc] initWithBaseURL:[NSURL URLWithString:AskMeAPIBaseURLString]];
        _sharedClient.securityPolicy = [AFSecurityPolicy defaultPolicy];
        _sharedClient.responseSerializer = [AFJSONResponseSerializer serializer];
        _sharedClient.requestSerializer = [AFJSONRequestSerializer serializer];
        [_sharedClient.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    });

    return _sharedClient;
}
@end

и вот что говорит геройка

2014-02-24T00:32:35.246169+00:00 heroku[router]: at=info method=GET path=/freetextquestions/3/freetextanswers host=topsecretapp.herokuapp.com request_id=b2876fdb-d4bf-403a-a05a-4539830f9f0e fwd="193.175.119.11" dyno=web.1 connect=9ms service=44ms status=404 bytes=351

Я пытался все, чтобы устранить эту ошибку, но я не могу заставить ее работать.. Кто-нибудь есть идея, что я делаю неправильно? Или это ошибка Heroku?

1 ответ

Решение

Я нашел решение для этого. Если я использую поддомен, предоставленный heroku, кажется, что HTTP-метод каким-то образом теряется, возможно, из-за переадресации или переадресации. Сейчас я использую другой домен, который ссылается на мое приложение heroku, и все работает нормально.

Другие вопросы по тегам