首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASIHTTPRequest问题

ASIHTTPRequest问题
EN

Stack Overflow用户
提问于 2011-03-19 07:42:23
回答 1查看 1.1K关注 0票数 0

我正在尝试开发一个应用程序,这将使用此Cytamobile-Vodafone网络服务登录。

我在Mozilla中使用了HTTP Live Header add-on来获得这个:%3D&HeaderLogin1%24CybeeUserName1%24txtUserName=mavris&HeaderLogin1%24CybeePassword1%24txtPassword=XXXXX&HeaderLogin1%24ibtnLogin.x=20&HeaderLogin1%24ibtnLogin.y=4 HTTP/1.1302 Found

首先,我注意到每次尝试登录时,ibtnLogin.x和ibtnLogin.y的值不同。

第二,我写了这段代码:

代码语言:javascript
复制
-(IBAction) buttonpressed { 

    NSURL *url = [NSURL URLWithString:@"https://www.cytamobile-vodafone.com/miPortal/HeaderLoginBar.aspx"];

   ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
   [request setPostValue:@"xxxxxx" forKey:@"txtUserName"];
   [request setPostValue:@"xxxxxx" forKey:@"txtPassword"];
   [request setPostValue:@"31" forKey:@"ibtnLogin.x"];
   [request setPostValue:@"7" forKey:@"ibtnLogin.y"];
   [request setDelegate:self];
   [request startAsynchronous];
   [self requestFinished:request];

}

- (void)requestFinished:(ASIFormDataRequest *)request
{
    // Use when fetching text data

    NSString *responseString = [request responseStatusMessage];

    NSLog(@"Output = %@",responseString);
}

我得到了:

代码语言:javascript
复制
  "Output = HTTP/1.1 200 OK" instead of 302 Found or any other error

我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-19 23:06:00

至少有一个问题是您的代码不应该在[request startAsynchronous];之后调用[self requestFinished:request];

startAsynchronous方法启动一个异步请求,因此它将在另一个线程中执行该请求,并在完成时通知您。

当请求完成时,ASIHTTPRequest代码将调用requestFinished:方法。如果请求失败,它将改为调用requestFailed:。不调用这些方法,ASIHTTPRequest代码将调用。查看ASIHTTPRequest docs

这是标准的委托模式,你会在Objective-C中看到很多(here是许多关于委托的问题中的一个)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5358879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档