HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – AFNetworking 3 x-www-form-urlencoded发布数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用X-www-form-urlencoded正文发布数据.
通过邮递员发帖,没关系

但是我不能通过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);
}];

请帮助我理解如何正确地做到这一点.谢谢!

解决方法

评论后我终于找到了答案.这是我现在正常运行的请求,请注意添加
[manager.requestserializer SETVALue:@"application/x-www-form-urlencoded; charset=UTF-8" forhttpHeaderField:@"Content-Type"];

这是完整的代码

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

大佬总结

以上是大佬教程为你收集整理的ios – AFNetworking 3 x-www-form-urlencoded发布数据全部内容,希望文章能够帮你解决ios – AFNetworking 3 x-www-form-urlencoded发布数据所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。