Основная Аутентификация HTTP на iPhone

Поскольку одно значение не инициализируется до выполнения операции, и поэтому я думаю, что поведение не определено, значением может быть что угодно.

13
задан system PAUSE 25 June 2009 в 22:54
поделиться

1 ответ

Две вещи. Во-первых, вы должны использовать асинхронные методы, а не синхронный метод / класс.

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:req]
                                                               cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                           timeoutInterval:30.0];

// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

Аутентификация управляется путем реализации этого метода в вашем делегате:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;

И вам, вероятно, также потребуется реализовать эти методы:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

Использование асинхронного метода в любом случае дает лучший пользовательский опыт, поэтому, несмотря на дополнительную сложность, его стоит использовать даже без возможности аутентификации.

15
ответ дан 2 December 2019 в 00:19
поделиться