json post işleminde sonra servisten gelen Response.RawHeaders.GetText aşağdak gibidir
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
Token: oWeFeOpw1IiRfWL7qaQyT7CG0s6EcTONMTE5MDAwMTIwMTYxMTExMTExMTExMTExMDAwMDAx
TokenExpiry: 23.3.2017 09:12:51
Access-Control-Expose-Headers: Token,TokenExpiry
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 22 Mar 2017 06:12:51 GMT
Connection: close
Content-Length: 55
bun text içindeki token: bilgisini bir değişkene akarmak istiyorum bunu nasıl yapabilrim... yardımlarınızı bekliyorumm
json Response.RawHeaders.GetText
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: json Response.RawHeaders.GetText
Merhaba,
Json post işlemini TIdHTTP bileşeni ile yaptığınızı varsayarak;
TIdHTTP.Response.RawHeaders TStringList türünde erişilebilir.
Bu anlamda aşağıdaki kodu deneyebilirsiniz. Normalde TStringList.Value['abc'] şeklinde kullanım için TStringList içindeki verilerin abc=xyz şeklinde kayıtlı olması gerekli. Sizde iki nokta ile ayrılmış.
Eğer bu şekilde çalışmaz ise:
Kullanımı şu şekilde olacaktır:
Json post işlemini TIdHTTP bileşeni ile yaptığınızı varsayarak;
TIdHTTP.Response.RawHeaders TStringList türünde erişilebilir.
Bu anlamda aşağıdaki kodu deneyebilirsiniz. Normalde TStringList.Value['abc'] şeklinde kullanım için TStringList içindeki verilerin abc=xyz şeklinde kayıtlı olması gerekli. Sizde iki nokta ile ayrılmış.
Kod: Tümünü seç
var
TempString: string;
begin
IdHTTP1.Get(); // normal servis işlemi yapılır
TempString := IdHTTP1.Response.RawHeaders.Values['Token'];
end;
Kod: Tümünü seç
function GetListValue(const List: TStrings; const Value: string; const Separator: Char; const CaseInsensitive: Boolean = True): string;
var
i: Integer;
SeparatorPosition: Integer;
TempString: string;
LocalValue: string;
begin
if List.Count = 0 then Exit(EmptyStr);
LocalValue := Value;
if CaseInsensitive then LocalValue := LocalValue.ToUpper();
for i := 0 to Pred(List.Count) do
begin
TempString := List[i];
if CaseInsensitive then TempString := TempString.ToUpper();
if Pos(LocalValue, TempString) > 0 then
begin
SeparatorPosition := Pos(Separator, TempString);
if SeparatorPosition = 0 then Exit(EmptyStr);
Inc(SeparatorPosition);
Result := Copy(List[i], SeparatorPosition, MaxInt);
Break;
end;
end;
end;
Kod: Tümünü seç
var
TempString: string;
begin
IdHTTP1.Get(); // normal servis işlemi yapılır
TempString := GetListToken(IdHTTP1.Response.RawHeaders, 'Token', ':', False);
ShowMessage(TempString);
end;