Arkadaşlar merhaba,
https://m.youtube.com/watch?v=_P6waeTlhVc bu linkteki rest uygulamasını çalışırken UTF-8 kodlamasından kaynaklı verileri getirmiyor. Browserdan linki çağırdığımda sorunsuz geliyor. Sebebi ben olabilir? UTF-8 için nasıl bir ayar gerekiyor.
Örnek bir kod bloğu yada proje paylaşabilir misiniz?
(05-10-2018, Saat: 00:23)masteryoda Adlı Kullanıcıdan Alıntı: [ -> ]Örnek bir kod bloğu yada proje paylaşabilir misiniz?
Server tarafı
procedure TWebModule1.DenemeGet(Request: TWebRequest; Response: TWebResponse);
var
a: TJSONArray;
o: TJSONObject;
begin
qry.SQL.Text := 'select * from users;';
qry.Active := true;
if qry.Active then begin
if qry.RecordCount>0 then begin
a := TJSONArray.Create;
try
qry.First;
while (not qry.Eof) do begin
o := TJSONObject.Create;
o.AddPair('ID',TJSONNumber.Create( qry.FieldByName('ID').AsInteger ));
o.AddPair('KULLANICIADI',qry.FieldByName('KULLANICIADI').AsString );
o.AddPair('SIFRE',qry.FieldByName('SIFRE').AsString );
o.AddPair('KULLANICITIPI',qry.FieldByName('KULLANICITIPI').AsString );
a.AddElement(o);
qry.Next;
end;
finally
Response.ContentType := 'application/json';
//Response.ContentType := 'application / x-www-form-urlencoded';
Response.Content := a.ToString;
a.DisposeOf;
end;
end;
end;
end;
procedure TWebModule1.WebModule1accdenemeAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Handled := True;
case Request.MethodType of
mtGet: DenemeGet( Request, Response );
// mtPut: EmployeePut( Request, Response );
// mtPost: EmployeePost( Request, Response );
// mtDelete: EmployeeDelete( Request, Response );
else begin
Response.StatusCode := 400; // bad request error code.
Response.SendResponse;
end;
end;
end;
rest client
request
response
türkçe karakter olmayan data istediğimde server tarafından bilgi sorunsuz geliyor, ancak türkçe karakterli bir data istediğimde aşağıdaki hatayı veriyor

Merhaba,
Tools menüsü altındaki REST Debugger aracı ile test edebilir misiniz?
(05-10-2018, Saat: 11:25)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Tools menüsü altındaki REST Debugger aracı ile test edebilir misiniz?
test ettim Fesih hocam gelen data içeriğinde türkçe karakter olursa hata veriyor, olmazsa sorunsuz çalışıyor
(05-10-2018, Saat: 11:31)burakb44 Adlı Kullanıcıdan Alıntı: [ -> ] (05-10-2018, Saat: 11:25)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Tools menüsü altındaki REST Debugger aracı ile test edebilir misiniz?
test ettim Fesih hocam gelen data içeriğinde türkçe karakter olursa hata veriyor, olmazsa sorunsuz çalışıyor
Merhaba,
Response kısmını aşağıdaki gibi tanımlayarak deneyebilir misiniz?
Response.ContentType := 'application/json; charset=UTF-8';
JSON metodlarında desteklenmeyen bir UTF metodunun olmasına karşın, yukarıdaki yöntemle olmaz ise, içeriği metinsel format olarak bildirerek test edin.
Response.ContentType := 'text/html; charset=UTF-8';
(05-10-2018, Saat: 11:39)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ] (05-10-2018, Saat: 11:31)burakb44 Adlı Kullanıcıdan Alıntı: [ -> ]test ettim Fesih hocam gelen data içeriğinde türkçe karakter olursa hata veriyor, olmazsa sorunsuz çalışıyor
Merhaba,
Response kısmını aşağıdaki gibi tanımlayarak deneyebilir misiniz?
Response.ContentType := 'application/json; charset=UTF-8';
JSON metodlarında desteklenmeyen bir UTF metodunun olmasına karşın, yukarıdaki yöntemle olmaz ise, içeriği metinsel format olarak bildirerek test edin.
Response.ContentType := 'text/html; charset=UTF-8';
Fesih hocam json formatında belirttiğiniz gibi denedim yine aynı hataya düştü, sadece text/html olarak metin gönderdiğimde problemsiz gedi. sorun json gönderip alma ile ilgili
RESTRequest1.Params[1].Value:=UTF8ToString(gönderilen metin)
veya
RESTRequest1.Params[1].Value:=UTF8EncodeToShortString(gönderilen metin)
şeklinde denerseniz sorun çözülüyor bende bu şekilde sorun düzeldi.
(15-11-2018, Saat: 17:10)osiso Adlı Kullanıcıdan Alıntı: [ -> ]RESTRequest1.Params[1].Value:=UTF8ToString(gönderilen metin)
veya
RESTRequest1.Params[1].Value:=UTF8EncodeToShortString(gönderilen metin)
şeklinde denerseniz sorun çözülüyor bende bu şekilde sorun düzeldi.
Elinize sağlık benzeri bir sorunu bende yasiyordum. Hata iletisi başkaydı ama bu kodu yazinca duzeldi.
REST'ten vazgeçip datasnap ile çözdüm olayı şimdilik, projenin ilerleyişine göre REST'e dönebilirim belki.
İlginiz ve cevaplar için teşekkür ederim.