2008-10-25 25 views
21

NSURLConnection ile yapılan bir istek ile HTTP Üstbilgileri'nin nasıl alınacağını anlamaya çalışıyorum. Tipik bir istek aşağıdaki gibi basit bir şey ile yapılır:Kakao'da NSURLRequest/NSURLConnection üzerinden HTTP Üstbilgileri Al

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

Ben şahsen yanıt başlıklarını alma Apple'ın bol belgelerinde bulduk tek yolu aşağıdaki NSURLConnection sınıf yöntemi kullanarak bir senkron çağrı yoluyla geçerli:

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error 

Burada NSURLResponse türünde bir yanıt nesnesine kolayca başvuru yapabilirim. Buradaki problem, özellikle EDGE gibi yüksek bir gecikme süresine sahip bir ağ ile bir mobil cihaz üzerinden senkronize istekler yapmaya hazır olmadığımdır. NSURLConnection'ın varsayılan, eşzamansız davranışı ile benzer sonuçlar elde etmek mümkün mü?

cevap

42

Bağlantı delegesinde, -connection:didReceiveResponse: yöntemini ekleyin. Standart bir HTTP isteği yapıyorsanız, NSURLResponse nesnesi gerçekten iletilen bir NSHTTPURLResponse nesnesi olacaktır ve -allHeaderFields iletisine yanıt verir. Aradığın şey bu olmalı.

+0

Ben de bunu düşündük. Şimdi daha fazla bilgi içeren bir başlık alanı çıkardım: 'Www-Authenticate: Digest realm = \" test \ "qop = \" auth \ "´ ve benzeri. Bu ayrıntıları ek bir dict veya dizi olarak ayarlamanız/ayarlamanız mümkün mü? –

İlgili konular