2012-01-08 3 views
1

Я выполняю HTTP-сообщение в iOS и использую его для запуска вставки через php в базе данных. У меня есть несколько длинная форма для ввода значений для вставки, и я вытаскиваю их все вместе в одну строку, которую я включаю в свой метод для запуска URL-адреса (сейчас это GET, я пробовал его с POST для аналогичных результаты), и когда я проверю его, он не будет работать. Я могу скопировать URL-адрес, который он создает, и вставить в браузер и запустить его таким образом, но он не будет запускаться через приложение iOS.iOS HTTP Post не запускает url

Я также пробовал с ASIHTTPRequest, без каких-либо результатов.

Вот мой HTTP метод Post:

NSString *content = @""; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:inserturl1]]; 
NSLog(inserturl1); 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:[content dataUsingEncoding:NSUTF8StringEncoding]]; 


// generates an autoreleased NSURLConnection 
[NSURLConnection connectionWithRequest:request delegate:self]; 

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
NSArray *results = [returnString componentsSeparatedByString:@"<br />"]; 
NSLog([results objectAtIndex:0]); 

и вот здание URL:

NSString *fn = [firstname text]; // First Name, fn from insert url 
    NSString *ln = [lastname text]; // Last Name, ln from url 
    NSString *age = [ageLabel text]; 
    NSString *als = [address text]; // Address last seen, als from insert url 
    NSString *cls = [city text]; // City last seen, cls from insert url 
    NSString *sls = [stateLabel text]; // State last seen, sls from insert url 
    NSString *jls = [jurisdiction text]; // Jursidiction last seen, jls from insert url 
    NSString *countystring = [county text]; 
    NSString *mdate = [dateLabel text]; // Missing Date, mdate from insert url 
    NSString *mtime = [timeLabel text]; // Missing Time, mtime from insert url 
    NSString *dob = [dobLabel text]; // Date of Birth, dob from insert url 
    dob = [dob stringByReplacingOccurrencesOfString:@"/" withString:@"-"]; 
    NSString *race = [ethnicityLabel text]; 
    NSString *heightstringft = [heightft text]; 
    NSString *heightstringin = [heightin text]; 
    NSString *gender = [genderLabel text]; 
    NSString *weightstring = [weight text]; 
    NSString *hair = [hairColorLabel text]; 
    NSString *eye = [eyeColorLabel text]; 
    NSString *cloths = [clothingdescription text]; 
    NSString *baseurl = @"http://my.domain.tld/php/newCase1Insert.php?cn="; 
    NSString *buildurl = [baseurl stringByAppendingFormat:casenumber]; 
    buildurl = [buildurl stringByAppendingString:@"&fn="]; 
    buildurl = [buildurl stringByAppendingFormat:fn]; 
    buildurl = [buildurl stringByAppendingString:@"&ln="]; 
    buildurl = [buildurl stringByAppendingFormat:ln]; 
    buildurl = [buildurl stringByAppendingString:@"&age="]; 
    buildurl = [buildurl stringByAppendingFormat:age]; 
    buildurl = [buildurl stringByAppendingString:@"&als="]; 
    buildurl = [buildurl stringByAppendingFormat:als]; 
    buildurl = [buildurl stringByAppendingString:@"&cls="]; 
    buildurl = [buildurl stringByAppendingFormat:cls]; 
    buildurl = [buildurl stringByAppendingString:@"&sls="]; 
    buildurl = [buildurl stringByAppendingFormat:sls]; 
    buildurl = [buildurl stringByAppendingString:@"&jls="]; 
    buildurl = [buildurl stringByAppendingFormat:jls]; 
    buildurl = [buildurl stringByAppendingString:@"&mdate="]; 
    buildurl = [buildurl stringByAppendingFormat:mdate]; 
    buildurl = [buildurl stringByAppendingString:@"&mtime="]; 
    buildurl = [buildurl stringByAppendingFormat:mtime]; 
    buildurl = [buildurl stringByAppendingString:@"&dob="]; 
    buildurl = [buildurl stringByAppendingFormat:dob]; 
    buildurl = [buildurl stringByAppendingString:@"&race="]; 
    buildurl = [buildurl stringByAppendingFormat:race]; 
    buildurl = [buildurl stringByAppendingString:@"&height="]; 
    buildurl = [buildurl stringByAppendingFormat:heightstringft]; 
    buildurl = [buildurl stringByAppendingFormat:heightstringin]; 
    buildurl = [buildurl stringByAppendingString:@"&gender="]; 
    buildurl = [buildurl stringByAppendingFormat:gender]; 
    buildurl = [buildurl stringByAppendingString:@"&weight="]; 
    buildurl = [buildurl stringByAppendingFormat:weightstring]; 
    buildurl = [buildurl stringByAppendingString:@"&hair="]; 
    buildurl = [buildurl stringByAppendingFormat:hair]; 
    buildurl = [buildurl stringByAppendingString:@"&eye="]; 
    buildurl = [buildurl stringByAppendingFormat:eye]; 
    buildurl = [buildurl stringByAppendingString:@"&cloths="]; 
    buildurl = [buildurl stringByAppendingFormat:cloths]; 
    buildurl = [buildurl stringByAppendingString:@"&county="]; 
    buildurl = [buildurl stringByAppendingFormat:countystring]; 
    buildurl = [buildurl stringByReplacingOccurrencesOfString:@" " withString:@"%%20"]; 
    NSLog(buildurl); 
    inserturl1 = buildurl; 

Может кто-нибудь помочь мне понять, почему он не работает URL-адрес?

ответ

0

Вот проблема, которую я нашел. Правильно не кодирую URL. Мне пришлось перекодировать мой URL с кодировкой NSUTF8String. My co-worker found the fix here.

Вот как это сделать:

NSString *myURL = // some URL 
NSString *fixedURL = [myURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // or any other encoding 
NSURL *URL = [NSURL URLWithString :fixedURL]; 
2

Вы должны использовать этот код, чтобы получить описание ошибки:

NSError *error = nil; 
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error]; 
NSLog(@"Error: %@", [error localizedDescription]); 

Кроме того, принять во внимание, что удаленный сервер может считывать HTTP заголовки принять (или блок) Ваш запрос.

+0

все, что ошибка говорит мне 'плохо URL', но я могу скопировать URL он отправляет в браузер и отправляет его. –

Смежные вопросы