DELPHI JSON CALL Q4U
หลายวันมานี้ ได้ช่วยพี่ๆโปรแกรมเมอร์ เขียน vb6 call api ไป Q4U ทำ demo ของ vb6 เสร็จ เลยลองทำของ delphi บ้าง ไปเริ่มกัน

สำหรับ delphi แล้วก็มี Library ให้แล้ว ชื่อ System.JSON ให้ทำการ uses ก่อนถึงจะใช้งาน Object ต่างๆได้นะครับ ใน demo นี้ผมใช้ TJSONObject ครับ
ตัวอย่างโค้ด ใน ปุ่ม onclick
procedure TForm7.btnCallClick(Sender: TObject);
var
js, rs: TJSONObject;
IdHTTP: TIdHTTP;
IdSSL: TIdSSLIOHandlerSocketOpenSSL;
respones: string;
ReqJson: TStringStream;
begin
js := TJSONObject.Create;
js.AddPair('servicePointId', qr_que.FieldByName('service_point_id').AsString);
js.AddPair('roomId', q_room.EditValue);
js.AddPair('roomNumber', q_roomnumber);
js.AddPair('queueNumber', qr_que.FieldByName('queue_number').AsString);
js.AddPair('isCompleted', 'Y');
//ShowMessage(js.ToString);
IdHTTP := TIdHTTP.Create;
try
IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
IdHTTP.IOHandler := IdSSL;
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.CharSet := 'utf-8';
IdHTTP.Request.CustomHeaders.AddValue('Accept', 'application/vnd.twitchtv.v3+json');
IdHTTP.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + api_token);
try
ReqJson := TStringStream.Create(js.ToJSON, TEncoding.UTF8);
respones := IdHTTP.Post('http://172.16.0.240:88/api/v1/queue/caller/' + qr_que.FieldByName('queue_id').AsString, ReqJson);
except
on E: Exception do
ShowMessage('Error on request: '#13#10 + e.Message);
end;
rs := TJSONObject.ParseJSONValue(respones) as TJSONObject;
ShowMessage(rs.ToString);
finally
IdHTTP.Free;
end;
end;

Leave a Reply