SORU
4 NİSAN 2011, PAZARTESİ


bir HTTP POST isteği gerçekleştirmek için nasıl?iOS:

İOS geliştirme yaklaşıyorum ve benim ilk uygulamaları bir HTTP POST isteği gerçekleştirmek için almak istiyorum.

Anladığım kadarıyla, sırayla veri olayları ele alacak olan bana bir temsilci nesnesi için zorlar NSURLConnection bir nesne üzerinden talep işleyen bağlantıyı yönetmek gerekir.

Birisi pratik bir örnek ile görev açıklayabilir misiniz?

Https: son nokta kimlik doğrulama verilerinin (kullanıcı adı ve şifre göndermek ve düz metin bir yanıt geri almak başvurmalısınız.

CEVAP
4 NİSAN 2011, PAZARTESİ


Aşağıdaki gibi NSURLConnection kullanabilirsiniz

  1. *2 Set*: istek yeniden Kullanın requestWithURL:(NSURL *)theURL.

    Eğer POST isteği ve/veya HTTP başlıklarını belirtmek gerekirse, NSMutableURLRequest

    • (void)setHTTPMethod:(NSString *)method
    • (void)setHTTPBody:(NSData *)data
    • (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field
  2. 2 isteğinizi yolu NSURLConnection kullanarak gönderin:

    • Eşzamanlı olarak: (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

      Bu işlem olabilir NSData bir değişken döndürür.

      ÖNEMLİ: UI engelleme önlemek için ayrı bir iş parçacığı eşzamanlı istek başlaması için Hatırlıyorum.

    • Uyumsuz: (void)start

Şöyle: senin NSURLConnection bu bağlantıyı işlemek için temsilci ayarlamayı unutmayın

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [self.data setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d {
    [self.data appendData:d];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", @"")
                                 message:[error localizedDescription]
                                delegate:nil
                       cancelButtonTitle:NSLocalizedString(@"OK", @"") 
                       otherButtonTitles:nil] autorelease] show];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *responseText = [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];

    // Do anything you want with it 

    [responseText release];
}

// Handle basic authentication challenge if needed
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
    NSString *username = @"username";
    NSString *password = @"password";

    NSURLCredential *credential = [NSURLCredential credentialWithUser:username
                                                             password:password
                                                          persistence:NSURLCredentialPersistenceForSession];
    [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011