- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
procedure TForm1.Button1Click(Sender: TObject);
var
RequestBody,SResponseBody: TStringStream;
ResponseBody: string;
begin
try
RequestBody := TStringStream.Create('{"login":"user","password":"pass999"}') ;
httpconn.HandleRedirects:=TRUE;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvSSLv23;
//httpconn.Host:='api.owencloud.ru';
httpconn.Request.Accept:='application/xml';
httpconn.Request.ContentLength:=68;
httpconn.Request.ContentType:='application/x-www-form-urlencoded';
ResponseBody:=httpconn.Post('https://api.owencloud.ru/v1/auth/open', RequestBody);
SResponseBody:=TStringStream.Create(httpconn.Post('https://api.owencloud.ru/v1/auth/open', RequestBody));
memo1.Text:=utf8toansi(ResponseBody);
xmldocument1.LoadFromStream(SResponseBody);
finally
RequestBody.Free;
SResponseBody.Free;
end;
end;
Antifriz_otrabotanyi 30.11.2019 19:59 # 0
guest8 01.12.2019 04:24 # −999
XYPO3BO3 01.12.2019 17:52 # 0
guest8 25.04.2020 07:57 # −999
guest8 05.05.2020 23:47 # −999
guest8 05.05.2020 23:49 # −999
XYPO3BO3 01.12.2019 06:19 # +1
2. '{"login":"user","password":"pass999 "}' несильно похоже на 'application/x-www-form-urlencoded'. httpconn умеет перекодировать JSON в x-www-form-urlencoded?
3. Магическая константа: httpconn.Request.ContentLength:=68;
Откуда она взялась? И как её корректировать, если вдруг пароль сменится?
4. Вызов httpconn.Post('https://api.owencloud.ru/v1/auth/open', RequestBody) у нас два раза? Почему результат первого помещается в мемо, а второго — в XML?
3.14159265 02.12.2019 03:29 # −1
Няшненько. Здесь Паскаль выглядит очень даже не дерьмово.
>TStringStream
>finally
Паскаль с запахом жабизны.
3.14159265 02.12.2019 03:36 # 0
Но всё-таки это же не Ява, могли бы и RAII завезти.
А если уж косить под яву, то try-with-resources, чтобы ресурсы автоматически освобождать.
XYPO3BO3 02.12.2019 08:35 # 0
Эту конструкцию потом унаследовали все реализации языка «Object Pascal» («Free Pascal», «PascalABC», «Oxygene» и ещё несколько компиляторов, которые оказались тупиковыми ветвями). Да, творение «Борланда» можно называть новым языком программирования.
guest8 02.12.2019 10:34 # −999
Steve_Brown 02.12.2019 12:03 # 0
Antifriz_otrabotanyi 02.12.2019 14:03 # 0
Antifriz_otrabotanyi 02.12.2019 14:03 # −1
inkanus_gray 15.12.2019 00:58 # 0