ios - AFNetworking 2.0/AFHTTPRequestOperation 应用程序/x-www-form-urlencoded

标签 ios iphone http-headers afnetworking-2 afhttprequestoperation

在过去的两个中型项目中使用 AFNetworking 2.0 取得了巨大成功。

虽然这个电话,发布用户的登录信息,但我一直失败(服务器显示不正确的登录名和密码,登录名是电子邮件,我们已经检查了服务器并且值与我正在尝试的相同发送)

服务器开发人员不处理 iOS/ObjC(java/mongoDB 家伙),我只提供一个 URL 和我需要传递的参数 Content-Type = application/x-www-form-url-encoded

我在某处读到@(在电子邮件中)等字符可能会导致问题

有比我更有经验的人可以参与进来吗?我的操作创建方法如下,非常感谢任何帮助。

-(AFHTTPRequestOperation *)loginUserWithParameters:(NSDictionary *)loginParameters
{
    /*
         parameters dictionary:
         email
         psw
         deviceToken
     */

    NSString *url=SERVER_USER_LOGIN;

    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:url]];
    //    [httpClient setParameterEncoding:AFFormURLParameterEncoding];

    NSMutableURLRequest *request=[httpClient requestWithMethod:@"POST" path:nil parameters:nil];


    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:loginParameters options:kNilOptions error:nil];


    [request setHTTPBody:jsonData];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    [AFNetworkActivityIndicatorManager sharedManager].enabled=YES;

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

    [httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];

    return operation;
}

最佳答案

实际上你用你的代码说你将发送 url 编码的数据到你的服务器,但是你正在用自定义数据覆盖你的请求的 postBody。所以你应该创建你的请求:

NSMutableURLRequest *request=[httpClient requestWithMethod:@"POST" path:nil parameters:loginParameters];

你应该删除下面几行:

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:loginParameters options:kNilOptions error:nil];
[request setHTTPBody:jsonData];

我认为以上更改就足够了。

关于ios - AFNetworking 2.0/AFHTTPRequestOperation 应用程序/x-www-form-urlencoded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22886698/

相关文章:

ios - 如何仅在单击搜索栏时显示表格 View ?

ios - 如何通过添加自定义 header 字段和参数来发出 HEAD 请求?

java - 如何从 Java 中的 HTTP header 中检索 IP 地址

iOS NSFetchedResultsController 类似 Realm 版本 2.1 的类

ios - 如何使用 MapKit 和 Swift 查找固定项目的位置

objective-c - CoreData 和预填充的数据库

iphone - iOS:如何在主视图之上显示一个小 View ?

iphone - iOS 方向更改不起作用也未收到 UIDeviceOrientationDidChangeNotification

javascript - 在表单提交 CasperJS 中发送 http header

MKMapView 的 iOS 自定义注释