代码之家  ›  专栏  ›  技术社区  ›  Oleksandr Matrosov

创建iOS客户端服务器应用程序。ASIFormDataRequest问题

  •  0
  • Oleksandr Matrosov  · 技术社区  · 13 年前

    我的问题是: 如何使用创建与以下相同的请求 ASIFormDataRequest 其次,我认为我需要从响应中解析JSON。

    http://exampledomain.com/mobile_api/register/?client=iphone&info=A=iPhone/OS=5.1/C=UA&time=1342780143&udid=8b6f0cc104d137ae2e1730235f5664094b831122&version=1.0&secure=5444d72741bad93b916577d9297fa
    

    现在我尝试使用这样的代码

    NSString *strURL = @"http://test2.mafia.ua/mobile_api/register/";
        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
        [request setDelegate:self];
        [request setPostValue:@"iphone" forKey:@"client"];
        [request setPostValue:@"A=iPhone/OS=5.1/C=UA" forKey:@"info"];
        [request setPostValue:@"1342780143" forKey:@"time"];
        [request setPostValue:@"8b6f0cc104d137ae2e1730235f5664094b831122" forKey:@"udid"];
        [request setPostValue:@"1.0" forKey:@"version"];
        [request setPostValue:@"5444d72741bad93b916577d9297fa" forKey:@"secure"];
        [request startAsynchronous];
    

    这是正确的吗?

    我也执行委托方法

    - (void)requestFinished:(ASIHTTPRequest *)request {
    
        NSLog(@"Response %d ==> %@", request.responseStatusCode, [request responseString]);
    
    }
    - (void)requestFailed:(ASIHTTPRequest *)request {
    
    }
    

    作为回应,如果我使用一些浏览器,我会得到这个(我认为这是JSON)。

    {“status”:“ok”,“secret”:“b82b7771f600772c2c5af903b117b5e”,“client”:“200004”,“expires”:“1345372850”}

    1 回复  |  直到 13 年前
        1
  •  1
  •   Jesse Rusak    13 年前

    您正在POST字段中传递数据(这就是 setPostValue: 确实如此。)

    您应该将它们包含在您的URL中;试着四处搜索在URL中构建查询参数的简单方法,或者只使用类似stringWithFormat:和适当的转义之类的方法。