Merhaba, hayatın çıkardığı zorlukları bir kenara bırakalım ve Ruby öğrenmeye devam edelim (nedensizce).
Fazla uzatmadan bu konuda Ruby dilinde bulunan "net/http" kütüphanesini ele alacağım.
Bu kütüphane Python dilindeki requests kütüphanesiyle aynı işlevleri yapmakta olan bir kütüphanedir, gelin kod örnekleri ile anlamaya çalışalım.
Fazla uzatmadan bu konuda Ruby dilinde bulunan "net/http" kütüphanesini ele alacağım.
Bu kütüphane Python dilindeki requests kütüphanesiyle aynı işlevleri yapmakta olan bir kütüphanedir, gelin kod örnekleri ile anlamaya çalışalım.
1. Temel Kullanım:
Ruby:
require 'net/http'
url = URI.parse('http://example.com')
http = Net::HTTP.new(url.host, url.port)
response = http.get(url.path)
puts "Status code: #{response.code}"
puts "Response body: #{response.body}"
Bu örnekte bir "URI" ve "HTTP" tanımladık (URI ve çeşitlerini daha sonra bir konu açıp detaylıca anlatacağım sadece kodun mantığını anlamaya çalışınız.) ve tanımlamış olduğumuz URI'ye oluşturduğumuz HTTP isteği ile bir request attık dönüş kodunu ve dönüt bodysini alıp terminale bastırdık.
2. Post İsteği Göndermek
Ruby:
require 'net/http'
require 'uri'
# Hedef URL ve parametreler
url = URI.parse('https://api.example.com/resource')
params = { 'key1' => 'value1', 'key2' => 'value2' }
# POST isteği oluşturma
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == 'https') # HTTPS kullanılıyorsa use_ssl'yi ayarla
request = Net::HTTP::Post.new(url.path)
request.set_form_data(params)
# İsteği gönderme ve yanıtı alma
response = http.request(request)
# Yanıtı işleme
puts "Status code: #{response.code}"
puts "Response body: #{response.body}"
3. SSL Kullanmak:
Ruby dilinde "SSL" kullanmak gayet basittir. Oluşturduğumuz isteğe yazacağımız "http.use_ssl = true" komutu https kullanmamızı aktif hale getirir.
4. Hata Yakalamak
Ruby:
begin
response = Net::HTTP.get_response(URI.parse('http://example.com'))
puts "Status code: #{response.code}"
puts "Response body: #{response.body}"
rescue StandardError => e
puts "Error: #{e.message}"
end
Bu örnekte de hata yakalama kontrolü eklemiş olduk.
Bu günlük benden bu kadar teşekkür ederim geç saatte açmış olduğum için konuyu hatalarım olabilir anlayışlı olalım.
Daha detaylı bilgi için: Class: Net::HTTP (Ruby 2.7.0)