Александр210
Принятый Кодер
Ofline
Доброго времени суток коллеги нужна ваша помощь
Есть процедура для авторизации на сайте она работает но встала задача что при регистрации нужно
передать еще фото или картинку из timage:
Так вот как сюда добавить еще фото:
data := 'phone='+reg_login_user+'&password='+reg_pass_user+'&name='+reg_name_user;
Есть предположение что надо дописать в конец еще скажем +'&photo='+а как его скажем загнать сюда из Timage;<--?
ниже представлены данные из докера разработчики сайта сделали его для удобства отстройки по Api
curl -X POST "http://api.service.ru/v1/user/auth" -H "accept: application/json" -H "Content-Type: multipart/form-data" -H "X-CLIENT-ID: docs_test_client_dont_use_in_prod" -H "X-API-KEY: 58574921a5b3e6ab3337a9e78b2b808d" -H "User-Agent: Android/2.0.9 (iPhone 8; iOS 10.1.2)" -d {"phone":"78949878543","password":"parol","name":"Ivan","photo":{}}
Как видно добавились параметры для добавления фото но вот как сюда его запихнуть ума не прилажу всю голову сломал
фото или картинку надо взять из timage
procedure reg_user; // Регистрация и получение ключей
var
data: string;
DataToSend : TStringStream;
IdHTTP: TIdHTTP;
Answer: string;
var x:ISuperObject;
begin
dateutcminus;
md5hash:='docs_test_client_dont_use_in_prod'+'renderTime'+IntToStr(YearOf(Now))+'-'+mount_utc+'-'+date_utc+':'+hore_utc;
md5hash:=System.Hash.THashMD5.GetHashString(md5hash); // Преобразовали в переменной md 5
try
data := 'phone='+reg_login_user+'&password='+reg_pass_user+'&name='+reg_name_user; // Записали в строку данные
DataToSend := TStringStream.Create(data, TEncoding.UTF8);
try
IdHTTP := TIdHTTP.Create(nil);
try
IdHTTP.Request.Accept := 'application/json, text/plain;q=0.9, text/html;q=0.8';
IdHTTP.Request.ContentType :='multipart/form-data';
IdHTTP.Request.CustomHeaders.Values['X-CLIENT-ID'] := 'docs_test_client_dont_use_in_prod';
IdHTTP.Request.CustomHeaders.Values['X-API-KEY'] := md5hash;
IdHTTP.Request.UserAgent := 'Android/2.0.9 (iPhone 8; iOS 10.1.2)';
Answer := IdHTTP.Post('http://api.service.ru/v1/user/auth', DataToSend); // Записываем ответ в answer
Application.ProcessMessages;
x:=SO(Answer);
tokenkey:=( X['token'].AsString ); // Получили токен
refreshtokenkey:=( X['refresh_token'].AsString ); // Получили рефрешь токен
IniFile:=TIniFIle.Create(TPath.Combine(TPath.GetTempPath, 'securiti'+'.ini')); // Создаем файл
IniFile.Writestring('paremeters', 'tokenkey', tokenkey); // Записываем
Inifile.UpdateFile;
IniFile:=TIniFIle.Create(TPath.Combine(TPath.GetTempPath, 'securiti'+'.ini')); // Создаем файл
IniFile.Writestring('paremeters', 'refreshtokenkey', refreshtokenkey); // Записываем
Inifile.UpdateFile; // Обновляем файлик с данными на устройстве
TabbedForm.WORKFORM.Visible := true; // Если же не пустые то показываем основную форму
TabbedForm.REGAUTCHFORM.Visible :=false; // При успешной авторизации скрываем форму авторизации
TabbedForm.memo1.Lines.Add('Успешная регистрация');
finally
IdHTTP.Free;
end;
finally
DataToSend.Free; // Очищаем
end;
except
on E: Exception do
if E.Message.Contains('HTTP/1.1 400 Bad Request') then
begin
ShowMessage('Введины не верные данные при регистрации');
end;
end;
Есть процедура для авторизации на сайте она работает но встала задача что при регистрации нужно
передать еще фото или картинку из timage:
Так вот как сюда добавить еще фото:
data := 'phone='+reg_login_user+'&password='+reg_pass_user+'&name='+reg_name_user;
Есть предположение что надо дописать в конец еще скажем +'&photo='+а как его скажем загнать сюда из Timage;<--?
ниже представлены данные из докера разработчики сайта сделали его для удобства отстройки по Api
curl -X POST "http://api.service.ru/v1/user/auth" -H "accept: application/json" -H "Content-Type: multipart/form-data" -H "X-CLIENT-ID: docs_test_client_dont_use_in_prod" -H "X-API-KEY: 58574921a5b3e6ab3337a9e78b2b808d" -H "User-Agent: Android/2.0.9 (iPhone 8; iOS 10.1.2)" -d {"phone":"78949878543","password":"parol","name":"Ivan","photo":{}}
Как видно добавились параметры для добавления фото но вот как сюда его запихнуть ума не прилажу всю голову сломал
фото или картинку надо взять из timage
procedure reg_user; // Регистрация и получение ключей
var
data: string;
DataToSend : TStringStream;
IdHTTP: TIdHTTP;
Answer: string;
var x:ISuperObject;
begin
dateutcminus;
md5hash:='docs_test_client_dont_use_in_prod'+'renderTime'+IntToStr(YearOf(Now))+'-'+mount_utc+'-'+date_utc+':'+hore_utc;
md5hash:=System.Hash.THashMD5.GetHashString(md5hash); // Преобразовали в переменной md 5
try
data := 'phone='+reg_login_user+'&password='+reg_pass_user+'&name='+reg_name_user; // Записали в строку данные
DataToSend := TStringStream.Create(data, TEncoding.UTF8);
try
IdHTTP := TIdHTTP.Create(nil);
try
IdHTTP.Request.Accept := 'application/json, text/plain;q=0.9, text/html;q=0.8';
IdHTTP.Request.ContentType :='multipart/form-data';
IdHTTP.Request.CustomHeaders.Values['X-CLIENT-ID'] := 'docs_test_client_dont_use_in_prod';
IdHTTP.Request.CustomHeaders.Values['X-API-KEY'] := md5hash;
IdHTTP.Request.UserAgent := 'Android/2.0.9 (iPhone 8; iOS 10.1.2)';
Answer := IdHTTP.Post('http://api.service.ru/v1/user/auth', DataToSend); // Записываем ответ в answer
Application.ProcessMessages;
x:=SO(Answer);
tokenkey:=( X['token'].AsString ); // Получили токен
refreshtokenkey:=( X['refresh_token'].AsString ); // Получили рефрешь токен
IniFile:=TIniFIle.Create(TPath.Combine(TPath.GetTempPath, 'securiti'+'.ini')); // Создаем файл
IniFile.Writestring('paremeters', 'tokenkey', tokenkey); // Записываем
Inifile.UpdateFile;
IniFile:=TIniFIle.Create(TPath.Combine(TPath.GetTempPath, 'securiti'+'.ini')); // Создаем файл
IniFile.Writestring('paremeters', 'refreshtokenkey', refreshtokenkey); // Записываем
Inifile.UpdateFile; // Обновляем файлик с данными на устройстве
TabbedForm.WORKFORM.Visible := true; // Если же не пустые то показываем основную форму
TabbedForm.REGAUTCHFORM.Visible :=false; // При успешной авторизации скрываем форму авторизации
TabbedForm.memo1.Lines.Add('Успешная регистрация');
finally
IdHTTP.Free;
end;
finally
DataToSend.Free; // Очищаем
end;
except
on E: Exception do
if E.Message.Contains('HTTP/1.1 400 Bad Request') then
begin
ShowMessage('Введины не верные данные при регистрации');
end;
end;