【问题标题】:Send JSON data in URL body with AFNetworking 3.0使用 AFNetworking 3.0 在 URL 正文中发送 JSON 数据
【发布时间】:2016-02-18 10:31:45
【问题描述】:

我想将 URL body 中的 JSON 数据 从我的 IOS 应用程序发送到服务器。我搜索了许多 SO 问题,但找不到我想要的。如果有人知道如何使用 AFNetworking,请告诉我。谢谢 这是我截取的发送参数的代码

NSMutableDictionary *parameters = [[NSMutableDictionary alloc]init];
[parameters setValue:@"PY" forKey:@"AppSecret"];
[parameters setValue:@"IOS" forKey:@"login_provider"];
[parameters setValue:_txtemail.text forKey:@"email"];
[parameters setValue:_txtpassword.text forKey:@"password"];
[parameters setValue:@"1" forKey:@"ios_device_id"];


AFHTTPSessionManager *managertwo = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
managertwo.requestSerializer = [AFJSONRequestSerializer serializer];
[managertwo.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

[managertwo POST:[NSString stringWithFormat:@"http://capemedics.co.za/Api/user_register/valid_user"] parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    NSLog(@"success! %@",responseObject);
    NSLog(@"%@",parameters);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"error: %@", error);
}];

而且我遇到了错误。我想在 URL 正文中传递这样的 JSON 数据

{"login_provider": "IOS","email": "%@","password": ”%@“,”ios_device_id": "1"}

【问题讨论】:

  • 你尝试了什么?您可以发布一些您尝试过的代码吗?错误是什么?
  • @reshmi 此代码仅在正文中发送参数而不是 JSON
  • @viratpuar 我建议您使用 AFNetworking,但您必须使用一个通用类来使用 NSObject 调用 WS url。这是非常简单和优化的代码。在这里查看stackoverflow.com/questions/33767908/…
  • 但我也想传递 URL 正文。如何使用 AFNetworking 传递 URL 正文?

标签: ios iphone json http afnetworking-3


【解决方案1】:

试试这个

NSString *strData = [[NSString alloc] initWithFormat:@"{\"login_provider\": \"IOS\",\"email\": \"%@\",\"password\": \"%@\",\"ios_device_id\": \"1\"}",self.txtEmail.text,self.txtPassword.text];

                NSString *strURL = @"http://capemedics.co.za/Api/user_register/valid_user"];

                NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strURL] cachePolicy:NSURLRequestReloadIgnoringCacheData  timeoutInterval:10];

                [request setHTTPMethod:@"POST"];
                [request setValue: @"YOUR_KEY" forHTTPHeaderField: @"AppSecret"];
                [request setValue: @"application/json" forHTTPHeaderField:@"Content-Type"];
                [request setHTTPBody: [strData dataUsingEncoding:NSUTF8StringEncoding]];

                AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
                op.responseSerializer = [AFJSONResponseSerializer serializer];
                [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
                 {
                     if (responseObject)
                     {
                      }
                  }
                 } failure:^(AFHTTPRequestOperation *operation, NSError *error){
                 }];

                [op start];

【讨论】:

    【解决方案2】:

    在不确定之前它是否有效

      NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL
              cachePolicy:NSURLRequestReloadIgnoringCacheData  timeoutInterval:10];
    
     [request setHTTPMethod:@"POST"];
    
     [request setValue: @"application/json" forHTTPHeaderField:@"Content-Type"];
     [request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]]; /// body is your son string
    
      AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
      op.responseSerializer = [AFJSONResponseSerializer serializer];
      [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    
    NSLog(@"JSON responseObject: %@ ",responseObject);
    
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", [error localizedDescription]);
    
    }];
    [op start];
    

    【讨论】:

    • 不需要这个NSMutableURLRequest bro ,一旦你的答案更新它会很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多