AFHTTPSessionManager en-tête
Je suis en train de définir une valeur par défaut en-tête "Content-Type" par la mise en HTTPAdditionalHeaders. Quand je regarde l'entête de la requête, AFNetworking (v 2.0.3) le modifie. J'ai aussi essayé de définir l'en-tête par setValue:forHTTPHeaderField: sur le requestSerializer, mais sans succès. Ce que je suis absent?
Mis à JOUR
NSURL *URL = [NSURL URLWithString:@"http://example.com/api"];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.HTTPAdditionalHeaders = @{@"Content-Type": @"multipart/form-data"};
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:URL sessionConfiguration:configuration];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
NSMutableDictionary *params = [[NSMutableDictionary alloc]init];
[params setValue:@"some value" forKey:@"someKey"];
[manager POST:@"search" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"success");
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"error");
}];
Êtes-vous à l'aide de AFNetworking 2.0.3?
oui, AFNetworking 2.0.3
Ce n'AFNeteworking modifier le contenu de l'en-tête de type de retour?
Brager, AFNetworking change "application/x-www-form-urlencoded; charset=utf-8"
oui, AFNetworking 2.0.3
Ce n'AFNeteworking modifier le contenu de l'en-tête de type de retour?
Brager, AFNetworking change "application/x-www-form-urlencoded; charset=utf-8"
OriginalL'auteur sash | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
Je pense que AFNetworking définir le Type de Contenu automatiquement et vous ne pouvez pas le changer. Pour envoyer des données à l'aide de Contenu de Type multipart/form-data:
Je sais que c'est une vieille question, mais le but de
uploadTaskWithRequest
est pour la création d'unNSURLSessionUploadTask
(qui peut être utilisé dans un contexte de session, alors que cela ne peut pas). Mais cela crée multipart demande, quiuploadTaskWithRequest
ne le fait pas.Merci pour cette précision
OriginalL'auteur sash
AFNetworking est livré avec un
AFJSONRequestSerializer
etAFJSONResponseSerializer
:J'ai besoin de définir différents "Content-Type", pas de json. "application/json" est juste un exemple.
de quoi êtes-vous le définir? Vous avez choisi 'application/json' dans votre question, qui se trouve aussi être un défaut, donc je suis en supposant que vous êtes atteint une certaine condition de course.
Désolé, peut-être que ma question est trompeuse. Je suis en train de mettre "multipart/form-data"
y, vous devriez mettre à jour la question se pose alors; ne voulez probablement pas à utiliser AFJSONRequestSerializer
OriginalL'auteur runmad
Dans le
AFURLRequestSerialization.m
fichier, vous pouvez trouver la propriété suivante:Maintenant, vous pouvez sous-classe
AFHTTPRequestSerializer
(ouAFJSONRequestSerializer
) et ajouter votre choix en-têtes HTTP pour que mutable dictionnaire (n'oubliez pas d'importer leAFURLRequestSerialization.m
fichier dans votre dossier de demande de sérialiseur .m de fichier).Alors que vous venez de définir la
requestSerializer
propriété de votreAFHTTPSessionManager
sous-classe d'un nouvel objet de votre nouvelle demande sérialiseur classe (par exemple dans leinit
méthode) et vous avez terminé. Toutes les demandes avec votre gestionnaire de session doit inclure vos en-têtes HTTP, puis.OriginalL'auteur Dschee