2012-01-18 3 views
0

Иногда я сталкиваюсь с изображением, которое я не могу царапать, чтобы его можно было сохранить. Примером этого является:Как очистить изображение, не имеющее расширение?

https://s3.amazonaws.com/plumdistrict.com-production/perks/12321/image/original.?1325898487

Когда я попал в URL из Internet Explorer, когда я вижу изображение, но когда я пытаюсь получить его из кода ниже я получаю следующее сообщение об ошибке «System.Net.WebException удаленный сервер возвратил ошибку: (403) Запрещенный»ошибка с GetResponse:

string url = "https://s3.amazonaws.com/plumdistrict.com-production/perks/12321/image/original.?1325898487"; 
WebRequest request = WebRequest.Create(url); 
WebResponse response = request.GetResponse(); 

Любые идеи о том, как получить это изображение?

Edit:

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

https://s3.amazonaws.com/plumdistrict.com-production/perks/12659/image/original.jpg?1326828951

ответ

0

Ну, похоже, она генерируется из сценария (возможно, извлекаемых из базы данных). Сервер должен отправить файл/тип контента, чтобы согласиться с этим ... но, похоже, это не так, что я считаю нарушением стандартов.

Мой блок Linux прекрасно знает, что это изображение JPEG, когда оно на моем жестком диске, потому что оно рассматривает заголовки файлов, а не полагается на расширения. Возможно, в Windows есть инструмент для этого?

Редактировать: На самом деле, при дальнейшем созерцании кажется странным, что вы получите . Возможно, сервер фактически блокирует вас от получения файла таким образом.

1

Хотя HTTP изначально должен быть без гражданства, существует множество реализаций, которые полагаются на то, что он является без гражданства. Я могу настроить свой веб-сервер, чтобы принимать заявки только на «http://mydomain.com/sexy_avatar.jpg», если вы предоставили файл cookie, подтверждающий, что вы вошли в систему. Если нет, я отправляю вам перенаправление 303 на «http: // mydomain .com/avatar_for_public_use.jpg».

Amazon может делать то же самое. Попробуйте загрузить веб-страницу с помощью Chrome и просмотрите представление Network в режиме разработчика (CTRL + SHIFT + J), чтобы просмотреть все заголовки, предоставленные на веб-сайт. Возможно, вам даже понадобится сделать полную навигацию в том же сеансе, прежде чем вы сможете увидеть изображение. Это, безусловно, имеет место во многих веб-приложениях, которые я разработал :-)

+0

+1 ценный ответ – mKorbel

+0

Позвольте мне убедиться, правильно ли я вас понимаю. Я думаю, вы говорите, что Amazon может потребовать, чтобы я передал ему какое-то состояние сеанса, например, с помощью файлов cookie, однако я могу получить это изображение без входа в систему через IE. –

+0

Чтобы проверить вашу теорию, я пошел вперед и запросил изображение с программным обеспечением, зарегистрировавшись в сеансе с помощью файлов cookie, но до сих пор не смог получить это изображение. Я все еще получаю ошибку 403. Я знаю, что состояние сеанса правильное, потому что я могу получить доступ к страницам только для членов. Кроме того, я могу получить доступ и сохранить каждое изображение, кроме этого. Мне все еще любопытно, может ли это быть причиной отсутствия. –

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

  • Нет связанных вопросов^_^