Я обслуживаю аутентифицированное изображение с помощью django. Изображение находится за представлением, которое требует входа в систему, и в конце я должен проверить больше вещей, чем просто проверку подлинности. Из-за причин, которые сложно объяснить здесь, я не могу использовать реальный url для изображения, но я обслуживаю его с помощью настраиваемого url, ведущего к аутентифицированному представлению.Откройте аутентифицированное изображение, отправленное django из java, используя клиент Apache http
Из java изображение должно быть доступно, чтобы сохранить или отобразить. Для этой части я использую Apache httpclient.
В Apacahe я пробовал много вещей (каждый пример и сочетание примеров ...), но, похоже, не может заставить его работать. Для других частей webapp я использую django-rest-framwork, с которым я успешно подключаюсь из java (и c и curl).
Я использую оформление login_reuired в django, что делает попытку сначала перенаправить URL-адрес на страницу входа в систему.
Пробовав ссылку и логин в webviewer, я вижу код 200 (OK) в консоли сервера. Стараясь связь с HTTPClient, я получаю 302 Найдено в консоли .... (отрываясь 302, это означает, что редирект ..)
это то, что я делаю в Джанго:
в URLs .py:
url(r'^photolink/(?P<filename>.*)$', 'myapp.views.photolink',name='photolink'),
в views.py:
import mimetypes
import os
@login_required
def photolink(request, filename):
# from the filename I get the image object, for this question not interesting
# there is a good reason for this complicated way to reach a photo, but not the point here
filename_photo = some_image_object.url
base_filename=os.path.basename(filename_photo)
# than this is the real path and filename to the photo:
path_filename=os.path.join(settings.MEDIA_ROOT,'photos',mac,base_filename)
mime = mimetypes.guess_type(filename_photot)[0]
logger.debug("mimetype response = %s" % mime)
image_data = open(path_filename, 'rb').read()
return HttpResponse(image_data, mimetype=mime)
, кстати, если я получить эту работу я нужен еще один декоратор, чтобы пройти другие тесты .... , но я сначала нужно, чтобы эта вещь работала ....
на данный момент это не защищенный url .... plain http.
в Java я пробовал много вещей ... с помощью веб-сервера Apache HttpClient 4.2.1 прокси, куки, аутентификации переговоры с последующей переадресации ... и так далее ...
ли я с видом на некоторые основные вещь здесь? ... кажется, что логин клиента веб-сайта не подходит для автоматического входа в систему ...
поэтому проблема может быть в моем коде в django .... или в java-коде ... .