Обновление: Благодаря Робу, я обнаружил, что сервер также не видит параметры запроса при простом вводе адреса в iOS Safari (однако Mac OS Mac отлично работает). Так что, похоже, это может быть что-то странное на стороне сервера.NSURLConnection не отправляет запрос
У меня возникла странная проблема, когда следующий код не отправляет раздел запроса запроса. Если я зарегистрирую $_SERVER['QUERY_STRING']
на стороне сервера, он пуст. Однако, если я просто набираю url в браузере, сервер правильно регистрирует его.
Также странно NSURL
поднимает строку запроса штраф, если я вхожу [nsurl query]
, так что проблема, как представляется, либо с NSURLConnection
или NSURLRequest
.
NSString* queryString = [self.appDelegate.connections componentsJoinedByString:@"|"];
NSString* url = [NSString stringWithFormat:@"http://mysite.com/?%@&isajax=1", queryString];
NSLog(@"url: %@", url); // http://mysite.com/?test&isajax=1
NSURL* nsurl = [NSURL URLWithString:url];
NSLog(@"nsurl: %@", [nsurl query]); // test&isajax=1
NSURLRequest *request = [NSURLRequest requestWithURL:nsurl];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse* response, NSData* responseData, NSError* error) {
// returns the page as if no query string were present at all
}];
Мне интересно, связано ли это с отсутствием имени файла. Может быть NSURLConnection
не нравится. Редактировать: Нет, не имеет к этому никакого отношения. Пробовал /index.php?test&isajax=1
и до сих пор ничего хорошего.
«... массив, содержащий информацию **, например ** заголовки ...» Индекс '' QUERY_STRING '' четко документирован. – devios1
Fwiw, '$ _GET' также пуст для ожидаемого параметра запроса. Например. '$ _GET [ "isajax"]'. – devios1
@chaiguy Конечно, вы можете использовать '_SERVER ['QUERY_STRING']', если вы хотите, чтобы все ваши параметры возвращались в одну строку. Я предполагал, что вы искали простой способ получить все параметры запроса по отдельности. Но если вы сами проанализируете это вручную, вы можете использовать '_SERVER ['QUERY_STRING']'. Например, если у меня есть php-страница, которая выполняет ' Php echo $ _SERVER ['QUERY_STRING']; ?> ', он возвращает строку запроса в порядке. Возможно, вы можете изменить свой вопрос, показывая свой PHP-код. Но выдача запроса, как и у вас, работает нормально (хотя я бы не использовал 'mainQueue'). – Rob