2012-07-20 139 views
0

我的问题是: 如何使用ASIFormDataRequest创建与下面相同的请求,其次我认为需要从响应中解析JSON。创建iOS客户端服务器应用程序。 ASIFormDataRequest问题

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),如果我使用某些浏览器。

{ “地位”: “OK”, “秘密”: “b82b7771f600772c2c5af903b117b5e”, “客户端”: “200004”, “过期”: “1345372850”}

回答

1

你传递你的数据在POST领域(这就是setPostValue:所做的。)

您应该将它们包含在您的URL中;尝试在URL中构建查询参数的简单方法,或者只是使用像stringWithFormat之类的东西:并适当地转义。

+0

感谢您的回应我尝试使用它作为URL,我得到响应403响应。但通过浏览器(Google Chrome),我得到json – 2012-07-20 11:56:32

+0

也许是因为你仍在发布数据?尝试在你的应用中使用GET(可能直接使用ASIHTTPRequest?) – 2012-07-20 13:09:30

相关问题