Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2014, 14:01   #1
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию Скачивание картинки по прямой ссылке.

У меня есть прямая ссылка на картинку(капчу).
Мне нужно скачать ее в TMemoryStream.

Делаю так:
Код:
http.Request.ContentType := 'image/jpeg';
memo1.Text := l.Text;
HTTP.Get(l.Text, stream);
stream.Position := 0;
stream.SaveToFile('picture');
stream.free;
в L хранится ссылка на картинку.
Во время Get запроса появляется ошибка 400 Bad Request.
В чем может быть проблема? В браузере картинка открывается.

http://www.google.com/recaptcha/api/...8-b9mLPeEQZ5C8
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 14:14   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

а где данные для запроса
Код:
with HTTP.Request do
begin
  host:= ?
  Accept:=?
  ... 
end;
кстати картинка в браузере не открывается!

Цитата:
An error occurred:
Input error: Invalid referer
ZuBy вне форума Ответить с цитированием
Старый 09.11.2014, 14:35   #3
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Картинка минут через 15 исчезает. Поэтому сейчас и не открывается, в первые минуты открывается.

Это в начале кода, при создании HTTP

Код:
http := tidhttp.Create(nil);
  http.HandleRedirects:=true;
  http.Request.UserAgent := 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1';
  http.Request.ContentType := 'application/x-www-form-urlencoded';
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 14:37   #4
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

покажи весь код
ZuBy вне форума Ответить с цитированием
Старый 09.11.2014, 14:50   #5
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
TS : TStringList;
http : TIdHTTP;
l : tstringlist;
Stream : TMemoryStream;
purl : string;
data:string;
begin
  http := tidhttp.Create(nil);
  http.HandleRedirects:=true;
  http.Request.UserAgent := 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1';
  http.Request.ContentType := 'application/x-www-form-urlencoded';

TS := TStringList.Create;
TS.Add('address=1Dn6Su4GFMfUJg7CkbGZWS3vwsbx4Auo7r');
http.Post('http://btc25.net/play', TS);
TS.Clear;

l := tstringlist.Create;
Stream := tmemorystream.Create;
l.Text := 'http://www.google.com/recaptcha/api/image?c=';
data := http.Get('http://www.google.com/recaptcha/api/challenge?k=6LdGjvwSAAAAACSKheoHke4a83gB2ylGbnVqgrAL');
purl := Parse('challenge : ', data, ',');
Delete(purl, 1,1);
Delete(purl, length(purl), 1);
l.Text := l.Text + purl;
http.Request.ContentType := 'image/jpeg';
memo1.Text := l.Text;
HTTP.Get(l.Text, stream);
stream.Position := 0;
stream.SaveToFile('picture');
  TS.Free;
  L.Free;
end;

end.

Последний раз редактировалось Nugrom; 09.11.2014 в 15:01.
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 15:04   #6
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

вот ссылка новая. первое время тут видна капча. http://www.google.com/recaptcha/api/...6fA9pf9aT99XKf
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 15:09   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Nugrom Посмотреть сообщение
вот ссылка новая. первое время тут видна капча. http://www.google.com/recaptcha/api/...6fA9pf9aT99XKf
та же ошибка.
у вас должен быть referer передан.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.11.2014, 15:26   #8
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

что должно быть в поле referer?
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 15:31   #9
Nugrom
Форумчанин
 
Регистрация: 14.09.2014
Сообщений: 118
По умолчанию

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

http://www.google.com/recaptcha/api/...VrATtqdak0vYg\
Nugrom вне форума Ответить с цитированием
Старый 09.11.2014, 15:36   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

tstringlist зачем тут?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение картинки по ссылке johny_03 Microsoft Office Excel 1 12.04.2014 01:08
картинки с текстом вокруг картинки zloba HTML и CSS 4 30.05.2012 10:12
Скачивание файла из интернета по ссылке smith45 Microsoft Office Excel 24 24.01.2012 13:15
Отображение картинки на кнопке WPF. Загрузка картинки из ресурсов. Проблема с Uri. Casper-SC Общие вопросы .NET 0 27.06.2010 23:11
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54