by Degree Admin

iPhone Utvikling ASIHTTPRequest

ASIHTTPRequest brukes i iPhone utvikling for å gjøre kommunikasjon med web servere lettere. Noen eksempler på hva ASIHTTPRequest tilbyr er blandt annet muligheten for å sende eller motta data fra en web server, laste ned data til minne eller direkte til en fil på disk, enkel tilgang til request og response HTTP header, GZIP og cookie støtte, synchronous og asynchronous requester.

Last ned ASIHTTPRequest her: ASIHTTPRequest

Kopier de filene du trenger til din prosjekt mappe og legg dem til i ditt xcode prosjekt. Hvis du ikke er sikker på hvilke filer du trenger så kopier over følgende filer:

* ASIHTTPRequestConfig.hiphone
* ASIHTTPRequestDelegate.h
* ASIProgressDelegate.h
* ASICacheDelegate.h
* ASIInputStream.h
* ASIInputStream.m
* ASIHTTPRequest.h
* ASIHTTPRequest.m
* ASIFormDataRequest.h
* ASIFormDataRequest.m
* ASINetworkQueue.h
* ASINetworkQueue.m
* ASIDownloadCache.h
* ASIDownloadCache.m
* ASIAuthenticationDialog.h
* ASIAuthenticationDialog.m
* Reachability.h (i External/Reachability mappen)
* Reachability.m (i External/Reachability mappen)

Den enkleste måten å bruke ASIHTTPRequest er å bruke en synchronous request. Ved å sende startSynchronous meldingen vil requesten bli kjørt i samme tråd og returnere når requesten er fullført (uansett om den var suksessfull eller ikke). For å få responsen som en string bruker man responseString metoden og for binære data bruker man responseData. Få requesten til å laste ned data til en fil med downloadDestinationPath property.

- (IBAction)grabURL:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://blog.degree.no"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
}
}

Bruk asynchronous request for å kjøre requesten i bakgrunnen.

- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://blog.degree.no"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}


- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];

// Use when fetching binary data
NSData *responseData = [request responseData];
}

– (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}

For mer informasjon om ASIHTTPRequest og hvordan man kan benytte det i eget prosjekt besøk ASIHTTPRequest