Una domanda veloce. Ho il seguente codice che ottiene la data mod di un file su un server:iOS - Ottieni risultati intestazione
- (void) sendRequestForLastModifiedHeaders
{
/* send a request for file modification date */
NSURLRequest *modReq = [NSURLRequest requestWithURL:[NSURL URLWithString:URLInput.text]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0f];
[[NSURLConnection alloc] initWithRequest:modReq delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
/* convert response into an NSHTTPURLResponse,
call the allHeaderFields property, then get the
Last-Modified key.
*/
NSHTTPURLResponse *foo = [(NSHTTPURLResponse *)response allHeaderFields];
NSString * last_modified = [NSString stringWithFormat:@"%@",
[[(NSHTTPURLResponse *)response allHeaderFields] objectForKey:@"Last-Modified"]];
NSLog(@"Last-Modified: %@", last_modified);
}
mia domanda principale è la seguente:
Questo invito inviare soltanto sopra l'intestazione? Se il file è grande, non voglio che l'intero file venga scaricato. Ecco perché sto controllando l'intestazione.
+++++++++++++++++++++++++++++++++++++++ Dopo l'aggiornamento funziona. .. Grazie ora assomiglia:
NSMutableURLRequest *modReq = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: URLInput.text]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0f];
[modReq setHTTPMethod:@"HEAD"];
Stai controllando le intestazioni dell'ultima modifica solo per scoprire se è necessario scaricare una nuova copia di un file? Se è così, ti consiglio di utilizzare una libreria di richieste HTTP premade con tutto questo integrato, come ['ASIHTTPRequest'] (http://allseeing-i.com/ASIHTTPRequest). Le varie politiche della cache che è possibile impostare dovrebbero essere adatte alla situazione. – darvids0n
Per più di quanto tu abbia mai voluto sapere su come funziona HTTP, dai un'occhiata a [RFC 2616] (http://tools.ietf.org/html/rfc2616). La Sezione 9 definisce i vari metodi GET, HEAD, POST, ecc. I metodi diversi da questi tre sono usati raramente. –
@iOSGuy sei su twitter? – MarkP