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

Posted

技术标签:

【中文标题】创建 iOS 客户端服务器应用程序。 ASIFormDataRequest 问题【英文标题】:Create iOS client server app. ASIFormDataRequest issues 【发布时间】:2012-07-20 10:49:12 【问题描述】:

我的问题是: 如何使用ASIFormDataRequestand second 创建与以下相同的请求,因为我认为我需要从响应中解析 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)。

“状态”:“正常”,“秘密”:“b82b7771f600772c2c5af903b117b5e”,“客户端”:“200004”,“过期”:“1345372850”

【问题讨论】:

【参考方案1】:

您在 POST 字段中传递数据(这就是 setPostValue: 所做的。)

您应该将它们包含在您的 URL 中;尝试寻找一种在 URL 中构建查询参数的简单方法,或者只使用类似 stringWithFormat: 和适当的转义。

【讨论】:

感谢您的回复,我尝试将其用作 URL,并得到响应 403。但通过浏览器(谷歌浏览器)我得到 json 也许是因为你还在 POST 数据?尝试从您的应用中使用 GET(也许直接使用 ASIHTTPRequest?)

以上是关于创建 iOS 客户端服务器应用程序。 ASIFormDataRequest 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IOS 中使用 STRIPE API 创建 STRIPE 客户?

无法创建 phonertc 客户端

Socket.io 无法连接,求助于“轮询”

基于 Amazon Amplify 构建自己的首个 iOS 应用程序

基于 Amazon Amplify 构建自己的首个 iOS 应用程序

iOS 聊天应用程序设计