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;
ดาวน์โหลด โค้ด demo program

View: 0