【问题标题】:How to do POST with action key in Objective C using AFNnetworking如何使用 AFNetworking 在 Objective C 中使用操作键进行 POST
【发布时间】:2014-10-25 22:25:51
【问题描述】:

我正在尝试使用名为“#load”的操作参数进行 POST。

对我的网络服务来说,关键是需要显示结果:action:#load

如何使用 AFNetworking 框架做到这一点?这是我的错误代码示例:

首先是常量声明:

const NSString *BASE_URL = @"http://www.mywebservice.com/request.php";

现在是代码:

-(void)requisitarEventos{
  [smartEventos removeAllObjects];

  NSString* url = [BASE_URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

  AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  [SVProgressHUD showWithStatus:@"Loading..." maskType:SVProgressHUDMaskTypeGradient];

  NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"#load",@"action", nil];

  [manager POST:url parameters:parameters
     success:^(AFHTTPRequestOperation *operation, id responseObject) {

         [self carregarEventos:responseObject];
         [SVProgressHUD dismiss];
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"Error: %@", error);
         [SVProgressHUD dismiss];
     }];
 }

【问题讨论】:

    标签: ios objective-c post afnetworking


    【解决方案1】:

    我找到了答案。我的 Web 服务代码的真正问题不是在“application/json”中给出 Content-Type 的结果,而是在“text/html”中给出。

    我使用下面的代码解决了这个问题:

    NSMutableSet *contentTypes = [[NSMutableSet alloc] initWithSet:manager.responseSerializer.acceptableContentTypes];
    [contentTypes addObject:@"text/html"];
    manager.responseSerializer.acceptableContentTypes = contentTypes;
    

    还有我班级的完整代码:

    -(void)callEvents{
    [smartEvents removeAllObjects];
    
    NSString* url = [NSString stringWithFormat:@"%@myService.php?action=load", BASE_URL];
    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    
    [SVProgressHUD showWithStatus:@"Loading..." maskType:SVProgressHUDMaskTypeGradient];
    
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    
    NSMutableSet *contentTypes = [[NSMutableSet alloc] initWithSet:manager.responseSerializer.acceptableContentTypes];
    [contentTypes addObject:@"text/html"];
    manager.responseSerializer.acceptableContentTypes = contentTypes;
    
    [manager GET:url parameters:nil
         success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
             [self carregarEventos:responseObject];
             [SVProgressHUD dismiss];
         }
         failure:^(AFHTTPRequestOperation *operation, NSError *error) {
             NSLog(@"Error: %@", error);
             [SVProgressHUD dismiss];
         }];
    }
    

    【讨论】:

      【解决方案2】:

      请看这个,我用回调做了一个简单的post方法,

      POST with URL parameters and JSON body in AFNetworking

      【讨论】:

        猜你喜欢
        • 2014-03-05
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多