Как скачать исходный код URL, который не имеет расширения файла? - PullRequest
1 голос
/ 26 декабря 2010

На данный момент я использую этот код ниже, чтобы загрузить файлы для получения исходного кода:

    NSString *stringUrl = @"http://example.com/hello/goodbye.html";
NSURL *finalURL = [NSURL URLWithString:[stringUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
self.source = [NSString stringWithContentsOfURL:finalURL encoding:NSUTF8StringEncoding error:nil];

Не поймите меня неправильно, это прекрасно работает, но не работает вообще, если у URL нет расширения, например:

NSString *stringUrl = @"http://example2.com/something/";
NSURL *finalURL = [NSURL URLWithString:[stringUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
self.source = [NSString stringWithContentsOfURL:finalURL encoding:NSUTF8StringEncoding error:nil];

Как я могу получить html исходный код того, что расширение не определено? Надеюсь, кто-то может помочь мне с этим, потому что весь мой проект основан на получении исходного кода от URL-адресов без расширения. Спасибо

1 Ответ

4 голосов
/ 26 декабря 2010

Он должен работать так же, как если бы был определен файл. URL GET - это просто запрос к веб-серверу. Серверу разрешено возвращать любое содержимое «файла», которое он хочет.

Другими словами: сложность обработки таких странных URL-адресов не обязательно должна быть частью вашего загружаемого кода (если вы обрабатываете запросы на перенаправление). Это сложность для серверной части.

EDIT:

Если вы пытаетесь получить исходный текст страницы PHP (или любой другой серверный язык, на котором написано веб-приложение), вам не повезло. Весь этот код обрабатывается на стороне сервера и никогда не отправляется клиенту.

EDIT2:

Если вы пытаетесь превратить что-то вроде http://example2.com/something/ в http://example2.com/something/whatever-file-the-webserver-used.XXX, то вам тоже не повезло. Никто никогда не говорил, что веб-серверу вообще приходилось передавать это файлу - опять же, URL просто превращается в GET-запрос к серверу. Сервер может генерировать ответ по своему усмотрению, и ему даже не нужно обращаться к конкретному файлу файловой системы, чтобы сгенерировать результат (он может быть полностью сгенерирован в памяти самим веб-сервером и вообще не затрагивать файловую систему). Системе даже не нужно знать концепцию файла, и при этом он сможет прекрасно реализовать сам HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...