2016-02-06 6 views
5

मैं x-www-form-urlencoded body के साथ डेटा पोस्ट करने का प्रयास कर रहा हूं। डाकिया के माध्यम से पोस्टिंग, यह ठीक Posting via postman, it is okAFNetworking 3 x-www-form-urlencoded पोस्ट डेटा

है लेकिन मैं यहाँ 3. afnetworking के माध्यम से यह नहीं कर सकते मेरी कोड

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); 
}]; 

कृपया, मेरी मदद को समझने के लिए सही ढंग से यह करने के लिए है। धन्यवाद!

+0

मुझे एक ही समस्या है, क्या आपको एक उत्तर मिला है जिसे आप साझा कर सकते हैं? –

उत्तर

0

, कोशिश कस्टम हेडर की जानकारी संलग्न उदाहरण के लिए:

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

आशा है कि यह आप के लिए मदद करते हैं।

7

टिप्पणी के बाद मुझे अंत में इसका जवाब मिला।

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

आपने अनुरोध Serializer के लिए सामग्री-प्रकार मान क्यों सेट किया और फिर पूरे सीरिएलाइज़र को पूरी तरह से नए से बदलकर फिर से इसे फिर से लिखना? –

+0

मुझे आश्चर्य है कि यह सही कार्य कैसे हो सकता है –

0

यहाँ: यहाँ मेरी सही ढंग से कार्य अनुरोध अब है,

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

के अलावा ध्यान दें यहाँ पूर्ण कोड है। यह मेरे साथ काम किया। इतना आसान ।

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); 
     }];} 
संबंधित मुद्दे