Александр210
Принятый Кодер
- Регистрация
- 20 Апр 2020
- Сообщения
- 1
- Баллы
- 28
Доброго времени суток коллеги нужна ваша помощь
Есть процедура для авторизации на сайте она работает но встала задача что при регистрации нужно
передать еще фото или картинку из 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;