-1

我正在制作一个 iPhone 应用程序,您需要在其中提供您的用户名和密码。然后它需要登录到一个网站,并从用户将被重定向到的网页中提取一些文本(如果使用网络浏览器) - 然后需要显示这些文本。我有两个 URL:登录的 URL 和“主页”(登录时看到的第一页)。

如果我在网络浏览器中输入:

https://[URL 的其余部分]/[表单名称].asp?username=[我的用户名]&password=[我的密码]

它会将我重定向到我的“主页”。如果我之前登录过,网站会记住我已登录,因此我可以直接进入“主页”,而无需重新检查我的凭据。

我该怎么做呢?我很陌生NSURLNSURLRequest所以我不知道从哪里开始,因为没有任何教程可以帮助我。

4

2 回答 2

1

尝试使用此块代码:

NSString *urlAsString = @" http:// www.apple.com";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:urlRequest
                                   queue:queue
                        completionHandler: ^(NSURLResponse *response,
                                             NSData *data,
                                             NSError *error) {
  if([data length] > 0 && error == nil) {
    NSString *html = [[NSString alloc] initWithData:data
                                           encoding:NSUTF8StringEncoding];
    NSLog(@"HTML = %@", html);
  } else if([data length] == 0 && error == nil) {
    NSLog(@"Nothing was downloaded.");
  } else if (error != nil) {
    NSLog(@" Error happened = %@", error);
  }
}];
于 2013-06-16T00:06:08.020 回答
0

这是一个常见的场景,只需发布​​请求并异步获取响应,请参见下面的代码

  -(void)Login
    {
        NSURL* url = [[NSURL alloc] initWithString:@"https://[rest of URL]/[form name].asp"];
        NSMutableURLRequest* request =
            [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

        [request setHTTPMethod:@"POST"];
        NSString* postString = @"username=[my userna

me]&password=[my password]";
            [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncodi

ng]];

        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

        [connection start];
    }








    -(void)connection:(NSURLConnection*)connection didReceiveData:(NSData *)data
    {
        //assign data to your property, this is the result of the post
    }

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
       //your business code to deal with the content of the response from your http request
    } 
于 2013-06-15T22:29:08.290 回答