require 'net/http'
require 'uri'
require 'json'

def turkish(guess)
  # Girdi kelimeyi UTF-8 olarak encode edelim
  guess_utf8 = guess.downcase.encode('UTF-8')

  # URL içine yerleştirirken doğru encode edelim
  encoded_guess = URI.encode_www_form_component(guess_utf8)
  url = URI("https://sozluk.gov.tr/gts?ara=#{encoded_guess}")

  # HTTP GET isteğini elle yönetmek bazen daha stabil sonuç verir
  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
    request = Net::HTTP::Get.new(url)
    # JSON istediğimizi belirtelim
    request['Accept'] = 'application/json'
    http.request(request)
  end

  # İstek başarılıysa (200 OK)
  if response.is_a?(Net::HTTPSuccess)
    # Gelen cevabı UTF-8'e zorlayalım
    body = response.body
    body.force_encoding('UTF-8')

    puts "API Yanıtı: #{body}"

    begin
      data = JSON.parse(body)
      # TDK API’si başarıyla kelime döndürdüyse Array şeklinde gelir
      if data.is_a?(Array) && !data.empty?
        check_guess(guess)  # Bu metod size ait, burada doğru kelime işlemlerini yapın
        return true
      # Sonuç bulunamadı ise genelde { "error" => "Sonuç bulunamadı" } döner
      elsif data.is_a?(Hash) && data['error'] == 'Sonuç bulunamadı'
        return false
      else
        # Beklenmeyen yanıt olursa
        return false
      end
    rescue JSON::ParserError => e
      puts "JSON çözümleme hatası: #{e.message}. Lütfen kelimeyi tekrar girin."
      return false
    end
  else
    # HTTP durum kodu 200 dışında bir şeyse
    puts "HTTP Hata: #{response.code} - #{response.message}"
    return false
  end
end
Bunu dener misin?