2016-02-06 21 views
5

Verileri x-www-form-urlencoded gövdesi ile göndermeyi deniyorum. postacı aracılığıyla Gönderme, bu Posting via postman, it is okAFNetworking 3 x-www-form-urlencoded posta verisi

tamam Ama burada 3. afnetworking yoluyla yapamam

NSDictionary *parameters = @{@"login" : email, 
          @"password": password}; 

NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters 
                options:0 
                error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

self.requestSerializer = [AFJSONRequestSerializer serializer]; 

NSString *urlString = [NSString stringWithFormat:@"%@/%@", HTTPBaseRequestURL, appendLoginUrl]; 

NSLog(@"URL %@\njsonString %@", urlString, jsonString); 


[self POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { 
    [formData appendPartWithFormData:jsonData name:@"data"]; 
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {   
    onSuccess(responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
    NSString *errorDescription = [NSError serverErrorMessageFromData:(NSData *)error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey]]; 
    NSInteger statusCode = [NSHTTPURLResponse errorCode:(NSHTTPURLResponse*)task.response]; 

    NetworkRequestError *requestError = [[NetworkRequestError alloc] initWithType: 
             (NSHTTPURLResponse*)task.response ? NetworkRequestErrorTypeServerError : NetworkRequestErrorTypeNoConnection 
                     description: 
             (NSHTTPURLResponse*)task.response ? errorDescription : nil]; 
    requestError.statusCode = statusCode; 

    NSLog(@"Error from server: %@, status code = %ld, error type = %lu", requestError.errorDescription, (long)requestError.statusCode, (unsigned long)requestError.type); 
    onFailure(requestError); 
}]; 

, bana doğru Bunun nasıl anlamaya yardım edin benim kodudur. Teşekkürler!

+0

Aynı sorunu yaşıyorum, paylaşabileceğiniz bir yanıt buldunuz mu? –

cevap

0

örneğin, özel başlık bilgisi eklemek deneyin:

[self.requestSerializer setValue:@" application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type]; 

sizin için yardımcı olur.

7

Yorum yaptıktan sonra sonunda cevabı buldum. İşte

NSString *url = [NSString stringWithFormat:@"%@%@",APIBASE,APIUSERENDPOINT]; 

NSDictionary* parametersDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
          username, @"username", 
          password, @"password", 
          nil 
          ]; 

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
    [manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 
    manager.requestSerializer = [AFHTTPRequestSerializer serializer]; 

[manager POST:url parameters:parametersDictionary progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
    NSLog(@"%@",responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
    NSLog(@"%@",error); 
}]; 
+7

Neden requestSerializer için içerik türü değeri ayarladınız ve daha sonra tüm seri hale getiriciyi tamamen yenisiyle değiştirerek yeniden yazdınız mı? –

+0

Bunun nasıl doğru bir işlev olabileceğini merak ediyorum –

0

: İşte benim düzgün isteği şimdi nerede,

[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 

eklendiğine dikkat edin İşte tam kod. Benimle çalıştı. Çok kolay .

NSDictionary* parametersDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
             @"deviceTokenIOS", @"db487c983ebbe7c2fb066d292bb4318175f54ab27b6b9df7871907e1d0ed62ba", 
             @"message", @"Hello Dunglt", 
             nil 
             ]; 

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 
dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"db487c983ebbe7c2fb066d292bb4318175f54ab27b6b9df7871907e1d0ed62ba", @"deviceTokenIOS", @"Hello Dunglt", @"message", nil]; 
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.requestSerializer = [AFHTTPRequestSerializer serializer]; 

[manager POST:[NSURL URLWithString:url].absoluteString parameters:dict progress:nil success:^(NSURLSessionTask *task, id responseObject) { 
    NSLog(@"%@", responseObject); 
} 
     failure:^(NSURLSessionTask *operation, NSError *error) { 
      NSLog(@"Error: %@", error); 
     }];}