iOS HTTP Post не запускает URL - PullRequest
1 голос
/ 08 января 2012

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

Я также пытался использовать 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?

Ответы [ 2 ]

2 голосов
/ 08 января 2012

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

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

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

0 голосов
/ 09 января 2012

Вот проблема, которую я обнаружил.Я не кодировал свой URL правильно.Мне пришлось перекодировать мой URL с кодировкой NSUTF8String. Мой коллега нашел здесь исправление.

Вот как вы это делаете:

NSString  *myURL = // some URL
NSString  *fixedURL = [myURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // or any other encoding
NSURL *URL = [NSURL URLWithString :fixedURL];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...