Хочу написать запрос к HTTPS веб сервису
который требует передачу некоторых параметров в заголовке
пишу так:
- Код: Выделить всё
uses
Classes, SysUtils, fphttpclient, Forms,
Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, PairSplitter, fpopenssl;
procedure TForm2.Button1Click(Sender: TObject);
var
QueryParams:TStrings=nil;
AURL:string;
s:string='';
item:string;
l: TStringstream;
http: tfphttpclient;
begin
l := TStringStream.Create('');
http:=tfphttpclient.Create(nil);
With http do
try
QueryParams:=TStringList.Create;
AddHeader('Authorization', 'AccessToken MjtAFOrgYUrsfCC7KPLpAi03N4Od17Bh');
AddHeader('X-User-Authorization', 'Basic aW5mb0BzcG1hc2gucnU6NTE0NzU4');
AddHeader('Content-Type','application/json;charset=UTF-8');
with QueryParams do
begin
if not String(lbedSettlement.Text).IsEmpty then
Values['settlement']:=lbedSettlement.Text;
if not String(lbedRegion.Text).IsEmpty then
Values['region']:=lbedRegion.Text;
if not String(lbedDistinct.Text).IsEmpty then
Values['distict']:=lbedDistinct.Text;
end;
AURL:='https://otpravka-api.pochta.ru/postoffice/1.0/settlement.offices.codes';
For item in QueryParams do
s:=s+'&'+ item;
AURL:=AURL+'?' + s.Substring(1);
httpmethod('GET',AURL,l,[]);
memo1.Lines.Clear;
memo1.Lines.Append(inttostr(ResponseStatusCode) + ' ' + ResponseStatusText);
memo1.Lines.Append(ResponseHeaders.Text);
memo1.Lines.Append(l.DataString);
finally
Free;
QueryParams.Free;
l.Free;
end;
end;
в ответ получаю 400 Bad Request
пробовал подобное через synapse
ситуация не меняется
если запрос отправляю через rest клиенты
например: chrome Advanced Rest Client то запрос проходит нормально
в чем ошибка????