Ограничить строку ASIHTTPRequest - PullRequest
0 голосов
/ 10 декабря 2011

Я запрашиваю веб-страницу, которая в основном является каталогом изображений .png. Но это также смешивается с кучей других вещей ... это пример начала ответа.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /IcePics/ob</title>
 </head>
 <body>
<h1>Index of /IcePics/ob</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/IcePics/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.ImgPlayer0.png">1c91-1341a0eba60-1341a12aeee.ImgPlayer0.png</a></td><td align="right">07-Dec-2011 19:51  </td><td align="right">2.3K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.ImgPlayer0.png.peer">1c91-1341a0eba60-1341a12aeee.ImgPlayer0.png.peer</a></td><td align="right">07-Dec-2011 19:51  </td><td align="right">  0 </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.ImgPlayerBOP.png">1c91-1341a0eba60-1341a12aeee.ImgPlayerBOP.png</a></td><td align="right">07-Dec-2011 19:56  </td><td align="right">2.7K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.ImgPlayerBOP.png.peer">1c91-1341a0eba60-1341a12aeee.ImgPlayerBOP.png.peer</a></td><td align="right">07-Dec-2011 19:56  </td><td align="right">  0 </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.gif">1c91-1341a0eba60-1341a12aeee.gif</a></td><td align="right">07-Dec-2011 19:51  </td><td align="right"> 14K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a0eba60-1341a12aeee.gif.peer">1c91-1341a0eba60-1341a12aeee.gif.peer</a></td><td align="right">07-Dec-2011 19:51  </td><td align="right">  0 </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.ImgPlayer0.png">1c91-1341a00fec0-1341a050a6e.ImgPlayer0.png</a></td><td align="right">07-Dec-2011 19:37  </td><td align="right">2.4K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.ImgPlayer0.png.peer">1c91-1341a00fec0-1341a050a6e.ImgPlayer0.png.peer</a></td><td align="right">07-Dec-2011 19:37  </td><td align="right">  0 </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.ImgPlayerBOP.png">1c91-1341a00fec0-1341a050a6e.ImgPlayerBOP.png</a></td><td align="right">07-Dec-2011 19:38  </td><td align="right">2.8K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.ImgPlayerBOP.png.peer">1c91-1341a00fec0-1341a050a6e.ImgPlayerBOP.png.peer</a></td><td align="right">07-Dec-2011 19:38  </td><td align="right">  0 </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.gif">1c91-1341a00fec0-1341a050a6e.gif</a></td><td align="right">07-Dec-2011 19:37  </td><td align="right"> 13K</td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1c91-1341a00fec0-1341a050a6e.gif.peer">1c91-1341a00fec0-1341a050a6e.gif.peer</a></td><td align="right">07-Dec-2011 19:37  </td><td align="right">  0 </td></tr>

Я только после .png изображений. Так я получаю информацию в банкомате.

#pragma ASIHTTPRequest Delegates

- (IBAction)sendHttpsRequest
{   
    //Start HUD
    //    [SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];
    //    [SVProgressHUD setStatus:@"loading..."];

    //Set request address
    NSMutableString *databaseURL = [[NSMutableString alloc] initWithString:@"http://www.metservice.com/IcePics/ob"];

    //call ASIHTTP delegates (Used to connect to database)
    NSURL *url = [NSURL URLWithString:databaseURL];

    //This sets up all other request
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    [request setDelegate:self]; 
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{       
    NSString *responseString = [[NSString alloc] init];

    responseString = [request responseString]; //Pass requested text from server over to NSString
    NSLog(@"Response String = %@", responseString);

    //removies the SVProgressHUD
    [NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(stopAnimating) userInfo:nil repeats:NO];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];
    NSLog(@"%@", error);
}

Таким образом, на самом деле остается вопрос: как получить только изображения .png? Делаю ли я это с помощью предикатов через NSXMLParser? Если да, не могли бы вы привести пример кода предикатов.

Это было бы очень признательно

1 Ответ

1 голос
/ 10 декабря 2011

Взгляните на ASIWebPageRequest - он содержит почти весь необходимый код, вам просто нужно вырезать часть кода для загрузки CSS и т. Д.

...