iPhone POST başarısız PHP

2 Cevap php

Ben burada bu kodu vardır:

NSString *post = [NSString stringWithFormat:@"deviceIdentifier=%@&deviceToken=%@",deviceIdentifier,deviceToken]; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:@"http://website.com/RegisterScript.php"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:@"MyApp-V1.0" forHTTPHeaderField:@"User-Agent"];
[request setHTTPBody:postData]; 
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *response = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 

bizim veritabanına cihazı kaydetmek için benim PHP sunucusuna veri göndermek gerekir, ama benim bazı kullanıcılar için bir POST veri gönderilirken hangi. Ben bu çizgiyi söylendi:

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];

soruna neden olabilir. Herhangi bir bu komut bazen POST veri göndermek olmaz neden düşünceler? Sunucuda ben başarısız bir gönderme için paket iz var ve İçerik Boyundan böylece hiçbir veri tüm gönderildi 0 olarak geldi. Herhangi bir yardım için teşekkür ederiz

2 Cevap

Ben benimkine benzer bir işlevi yapıyorum ve farklı tek şey yanlış olduğunu düşünüyorum hattıdır. Bunu deneyin

NSMutableData *postData = [NSMutableData data];
[postData appendData:[[NSString stringWithFormat::@"deviceIdentifier=%@&deviceToken=%@",deviceIdentifier,deviceToken]dataUsingEncoding:NSUTF8StringEncoding]];

stringByUrlEncoding temelde kendi karakterine kodlanmış güvenli dize (Ben bunu açıklamak için en iyi yolu şu, aklım boş atm olduğunu düşünüyorum) ile herhangi saklıdır karakterleri değiştirir.

Umut olur

Arada siz özelliklerinden app sürümü alabilirsiniz:

NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; [request setValue:[NSString stringWithFormat:@"My App %@", appVersion] forHTTPHeaderField:@"User-Agent"];