Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
20th
Янв
Загрузить изображение по ссылке с кириллицей
Posted by obzor under Delphi
Знаю несколько способов скачать изображение с интернета по средствам Delphi. Но, как скачать по такой ссылке?
http://homeandinteriors.ru/wp-content/uploads/2012/11/Brabbu-–-португальский-дизайнерский-бренд-выпускающий-эксклюзивные-предметы-интерьера-3.jpg
Не знаю в чем проблема, в кириллице или в черточках(-–-), но ошибка:
HTTP/1.1 404 Not Found
Delphi XE 10.1. Без проблем
procedure TForm2.Button1Click(Sender: TObject);
var
HTTP: TIdHTTP;
FS: TFileStream;
begin
try
HTTP := TIdHTTP.Create(nil);
HTTP.ConnectTimeout := 5000;
FS := TFileStream.Create(ExtractFilePath(Application.ExeName) + '3.jpg', fmCreate);
try
HTTP.Get('http://homeandinteriors.ru/wp-content/uploads/2012/11/Brabbu-%E2%80%93-%D0%BF%D0' +
'%BE%D1%80%D1%82%D1%83%D0%B3%D0%B0%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9' +
'-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9-' +
'%D0%B1%D1%80%D0%B5%D0%BD%D0%B4-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D1%8E%D1%89' +
'%D0%B8%D0%B9-%D1%8D%D0%BA%D1%81%D0%BA%D0%BB%D1%8E%D0%B7%D0%B8%D0%B2%D0%BD%D1' +
'%8B%D0%B5-%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D1%8B-%D0%B8%D0%BD%D1%82' +
'%D0%B5%D1%80%D1%8C%D0%B5%D1%80%D0%B0-3.jpg', FS);
except
on E: Exception do
begin
ShowMessage(E.Message);
end;
end;
finally
FreeAndNil(HTTP);
FreeAndNil(FS);
end;
end;
В каком Delphi пытаетесь реализовать?
Можно кодировать из вашей ссылки «португальский-дизайнерский-бренд-выпускающий-эксклюзивные-предметы-интерьера-3.jpg» в
«-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%8 C%D0%B5%D1%80%D0%B0-3.jpg»
Вот рабочий кодировщик
Function UrlEncode(Str: string): string;
function CharToHex(Ch: Char): Integer;
asm
and eax, 0FFh
mov ah, al
shr al, 4
and ah, 00fh
cmp al, 00ah
jl @@10
sub al, 00ah
add al, 041h
jmp @@20
@@10:
add al, 030h
@@20:
cmp ah, 00ah
jl @@30
sub ah, 00ah
add ah, 041h
jmp @@40
@@30:
add ah, 030h
@@40:
shl eax, 8
mov al, '%'
end;
var
i, Len: Integer;
Ch: Char;
N: Integer;
P: PAnsiChar;
begin
Result := '';
Len := Length(Str);
P := PAnsiChar(@N);
for i := 1 to Len do
begin
Ch := Str[ i];
// здесь исключения символов которые не кодируются
if Ch in ['0'..'9', 'A'..'Z', 'a'..'z', '_', ':', '/', '.'] then
Result := Result + Ch
else
begin
if Ch = ' ' then
Result := Result + '+'
else
begin
N := CharToHex(Ch);
Result := Result + P;
end;
end;
end;
end;
Использовать с кодом Shouldercannon
sUrl:= UrlEncode(AnsiToUTF8('http://homeandinteriors.ru/wp-content/uploads/2012/11/Brabbu' +
'-–-португальский-дизайнерский-бренд-выпускающий-эксклюзивные-предметы-интерьера-3.jpg'));
HTTP.Get(sUrl, FS)
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)