Ruby'de HTTParty İle HTTP İstekleri!

Bunjo

Uzman üye
14 Ara 2020
1,592
1,889
I Won
6449ti9.gif


kbrn6ph.png



Merhabalar ben Anka Red Team'den Bunjo,
Bu yazıda konumuz Ruby programlama dilinde HTTParty kütüphanesinin kullanımı olacaktır.



HTTParty Nedir?

HTTParty, Ruby programlama dilinde HTTP istekleri yapmak ve yanıtları işlemek için kullanılan bir kütüphanedir. HTTParty, Ruby'de HTTP işlemlerini kolaylaştırmak için tasarlanmıştır ve popüler bir seçenektir.

İşlevsellik açısından HTTParty şunları sağlar:

Kolay Kullanım: HTTParty, HTTP isteklerini yapmayı ve yanıtları işlemeyi basitleştirir. Basit bir API'ye sahip olduğu için hızlı bir şekilde öğrenilebilir.

Çeşitli HTTP Metotlarını Destekler: GET, POST, PUT, DELETE ve diğer HTTP metotlarını destekler. Bu sayede farklı türdeki istekleri kolayca gönderebilirsiniz.

Otomatik Ayrıştırma: JSON, XML, HTML gibi yaygın formatlardaki yanıtları otomatik olarak ayrıştırır. Bu, yanıtları Ruby veri yapılarına dönüştürmek için manuel olarak kod yazma ihtiyacını ortadan kaldırır.

Özelleştirilebilirlik: İstekler için özel başlıklar, parametreler ve diğer seçenekler eklemek için geniş bir seçenek yelpazesi sunar. Bu, HTTP isteklerinizi daha esnek hale getirir.

Sunucu Yanıtlarını İşleme: Sunucudan gelen yanıtları işlemek için çeşitli yöntemler sağlar. Başarılı bir istek durumunda veya hata durumunda nasıl davranılacağını belirlemek için işlevsellik sunar.

HTTParty, birçok Ruby uygulamasında yaygın olarak kullanılan ve güvenilir bir HTTP istemcisidir. Web servisleriyle etkileşime geçmek, API'lerle çalışmak veya dış kaynaklardan veri almak gibi senaryolar için sıkça tercih edilir. Kolay kullanımı ve esnek özelleştirme seçenekleri sayesinde, Ruby geliştiricileri tarafından tercih edilir.

"gem install httparty" komutu ile indirilebilir.


kbrn6ph.png


HTTParty İle GET İsteği

Ruby:
require 'httparty'

# GET isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# GET isteği gönderme
response = HTTParty.get(url)

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini Ruby programına dahil eder.

url = 'https://jsonplaceholder.typicode.com/posts/1': GET isteği gönderilecek URL'yi belirler. Bu örnekte, JSONPlaceholder API'sinden bir posta erişim sağlanmaktadır.

response = HTTParty.get(url): Belirtilen URL'ye bir GET isteği gönderir ve yanıtı response değişkenine atar.

if response.success?: response nesnesinin success? yöntemini kullanarak, isteğin başarılı olup olmadığını kontrol eder.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, konsola "İstek başarılı!" mesajını ve yanıtın durum kodunu (response.code) yazdırır.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdırmak için bir başlık mesajı yazdırır.

puts response.body: Eğer istek başarılıysa, yanıtın gövdesini (response.body) ekrana yazdırır.

else: Eğer istek başarısızsa, bu blok çalışır.

puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, konsola "İstek başarısız!" mesajını ve yanıtın durum kodunu (response.code) yazdırır.


kbrn6ph.png


HTTParty İsteğine Header Ve Cookie Eklemek

Ruby:
require 'httparty'

# GET isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# Özel başlıklar (headers)
headers = {
  'User-Agent' => 'MyCustomUserAgent/1.0',
  'Custom-Header' => 'CustomValue'
}

# Çerezler (cookies)
cookies = {
  'session_id' => '1234567890',
  'user_token' => 'abcdef1234567890'
}

# GET isteği gönderme
response = HTTParty.get(url, headers: headers, cookies: cookies)

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini kullanabilmek için Ruby programına dahil ediyoruz.

url = 'https://jsonplaceholder.typicode.com/posts/1': GET isteğini göndereceğimiz URL'yi belirtiyoruz.

headers = {...}: Özel başlıklar (header) için bir hash (headers) oluşturuyoruz. Bu hash, isteği gönderirken göndereceğimiz özel başlıkları içerir.

cookies = {...}: Çerezler (cookie) için bir hash (cookies) oluşturuyoruz. Bu hash, isteği gönderirken göndereceğimiz çerezleri içerir.

response = HTTParty.get(url, headers: headers, cookies: cookies): HTTParty'nin get metodunu kullanarak GET isteğini gönderiyoruz. Bu metod, URL'yi ve istek gönderirken kullanılacak özel başlıkları ve çerezleri alır. response değişkenine, sunucudan dönen yanıtı atar.

if response.success?: response nesnesinin success? metodunu kullanarak, isteğin başarılı olup olmadığını kontrol ediyoruz.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, ekrana "İstek başarılı!" mesajını ve yanıtın durum kodunu yazdırıyoruz.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdıracağımız bir başlık mesajı yazdırıyoruz.

puts response.body: Eğer istek başarılıysa, sunucudan gelen yanıtın gövdesini ekrana yazdırıyoruz.

else: Eğer istek başarısızsa, bu blok çalışır.

puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, ekrana "İstek başarısız!" mesajını ve yanıtın durum kodunu yazdırıyoruz.


kbrn6ph.png


HTTParty İle Post İsteği

Ruby:
require 'httparty'

# POST isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts'

# Gönderilecek veri (JSON formatında)
data = {
  title: 'foo',
  body: 'bar',
  userId: 1
}

# POST isteği gönderme
response = HTTParty.post(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' })

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini dahil ediyoruz.

url = 'https://jsonplaceholder.typicode.com/posts': POST isteğinin gönderileceği URL'yi belirtiyoruz. Bu örnekte, JSONPlaceholder API'sinden post oluşturmak için kullanılan bir URL kullanılmıştır.

data = {...}: Gönderilecek veriyi (JSON formatında) bir hash olarak tanımlıyoruz. Bu örnekte, "title", "body" ve "userId" alanları içeren bir veri kullanılmıştır.

HTTParty.post(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' }): HTTParty'nin post yöntemini kullanarak POST isteğini gönderiyoruz. body parametresi, gönderilecek veriyi (JSON formatında) içerir ve headers parametresi, isteğin başlıklarını belirtir. Burada "Content-Type" başlığı "application/json" olarak ayarlanmıştır çünkü gönderilen veri JSON formatındadır.

if response.success?: Gönderilen isteğin başarılı olup olmadığını kontrol ediyoruz.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, konsola "İstek başarılı!" mesajını ve yanıtın durum kodunu (response.code) yazdırıyoruz.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdırmak için bir başlık mesajı yazdırıyoruz.

puts response.body: Eğer istek başarılıysa, yanıtın gövdesini (response.body) ekrana yazdırıyoruz.

else: Eğer istek başarısızsa, bu blok çalışır.

puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, konsola "İstek başarısız!" mesajını ve yanıtın durum kodunu (response.code) yazdırıyoruz.

kbrn6ph.png


HTTParty İle PUT İsteği
Ruby:
require 'httparty'

# PUT isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# Güncellenecek veri (JSON formatında)
data = {
  title: 'foo',
  body: 'bar',
  userId: 1
}

# PUT isteği gönderme
response = HTTParty.put(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' })

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end


İyi forumlar.


 

Butcherb3y

Uzman üye
1 Eyl 2022
1,610
1,195
Anıtkabir
6449ti9.gif


kbrn6ph.png



Merhabalar ben Anka Red Team'den Bunjo,
Bu yazıda konumuz Ruby programlama dilinde HTTParty kütüphanesinin kullanımı olacaktır.



HTTParty Nedir?

HTTParty, Ruby programlama dilinde HTTP istekleri yapmak ve yanıtları işlemek için kullanılan bir kütüphanedir. HTTParty, Ruby'de HTTP işlemlerini kolaylaştırmak için tasarlanmıştır ve popüler bir seçenektir.

İşlevsellik açısından HTTParty şunları sağlar:

Kolay Kullanım: HTTParty, HTTP isteklerini yapmayı ve yanıtları işlemeyi basitleştirir. Basit bir API'ye sahip olduğu için hızlı bir şekilde öğrenilebilir.

Çeşitli HTTP Metotlarını Destekler: GET, POST, PUT, DELETE ve diğer HTTP metotlarını destekler. Bu sayede farklı türdeki istekleri kolayca gönderebilirsiniz.

Otomatik Ayrıştırma: JSON, XML, HTML gibi yaygın formatlardaki yanıtları otomatik olarak ayrıştırır. Bu, yanıtları Ruby veri yapılarına dönüştürmek için manuel olarak kod yazma ihtiyacını ortadan kaldırır.

Özelleştirilebilirlik: İstekler için özel başlıklar, parametreler ve diğer seçenekler eklemek için geniş bir seçenek yelpazesi sunar. Bu, HTTP isteklerinizi daha esnek hale getirir.

Sunucu Yanıtlarını İşleme: Sunucudan gelen yanıtları işlemek için çeşitli yöntemler sağlar. Başarılı bir istek durumunda veya hata durumunda nasıl davranılacağını belirlemek için işlevsellik sunar.


HTTParty, birçok Ruby uygulamasında yaygın olarak kullanılan ve güvenilir bir HTTP istemcisidir. Web servisleriyle etkileşime geçmek, API'lerle çalışmak veya dış kaynaklardan veri almak gibi senaryolar için sıkça tercih edilir. Kolay kullanımı ve esnek özelleştirme seçenekleri sayesinde, Ruby geliştiricileri tarafından tercih edilir.

"gem install httparty" komutu ile indirilebilir.


kbrn6ph.png


HTTParty İle GET İsteği

Ruby:
require 'httparty'

# GET isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# GET isteği gönderme
response = HTTParty.get(url)

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini Ruby programına dahil eder.

url = 'https://jsonplaceholder.typicode.com/posts/1': GET isteği gönderilecek URL'yi belirler. Bu örnekte, JSONPlaceholder API'sinden bir posta erişim sağlanmaktadır.

response = HTTParty.get(url): Belirtilen URL'ye bir GET isteği gönderir ve yanıtı response değişkenine atar.

if response.success?: response nesnesinin success? yöntemini kullanarak, isteğin başarılı olup olmadığını kontrol eder.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, konsola "İstek başarılı!" mesajını ve yanıtın durum kodunu (response.code) yazdırır.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdırmak için bir başlık mesajı yazdırır.

puts response.body: Eğer istek başarılıysa, yanıtın gövdesini (response.body) ekrana yazdırır.

else: Eğer istek başarısızsa, bu blok çalışır.


puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, konsola "İstek başarısız!" mesajını ve yanıtın durum kodunu (response.code) yazdırır.


kbrn6ph.png


HTTParty İsteğine Header Ve Cookie Eklemek

Ruby:
require 'httparty'

# GET isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# Özel başlıklar (headers)
headers = {
  'User-Agent' => 'MyCustomUserAgent/1.0',
  'Custom-Header' => 'CustomValue'
}

# Çerezler (cookies)
cookies = {
  'session_id' => '1234567890',
  'user_token' => 'abcdef1234567890'
}

# GET isteği gönderme
response = HTTParty.get(url, headers: headers, cookies: cookies)

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini kullanabilmek için Ruby programına dahil ediyoruz.

url = 'https://jsonplaceholder.typicode.com/posts/1': GET isteğini göndereceğimiz URL'yi belirtiyoruz.

headers = {...}: Özel başlıklar (header) için bir hash (headers) oluşturuyoruz. Bu hash, isteği gönderirken göndereceğimiz özel başlıkları içerir.

cookies = {...}: Çerezler (cookie) için bir hash (cookies) oluşturuyoruz. Bu hash, isteği gönderirken göndereceğimiz çerezleri içerir.

response = HTTParty.get(url, headers: headers, cookies: cookies): HTTParty'nin get metodunu kullanarak GET isteğini gönderiyoruz. Bu metod, URL'yi ve istek gönderirken kullanılacak özel başlıkları ve çerezleri alır. response değişkenine, sunucudan dönen yanıtı atar.

if response.success?: response nesnesinin success? metodunu kullanarak, isteğin başarılı olup olmadığını kontrol ediyoruz.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, ekrana "İstek başarılı!" mesajını ve yanıtın durum kodunu yazdırıyoruz.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdıracağımız bir başlık mesajı yazdırıyoruz.

puts response.body: Eğer istek başarılıysa, sunucudan gelen yanıtın gövdesini ekrana yazdırıyoruz.

else: Eğer istek başarısızsa, bu blok çalışır.


puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, ekrana "İstek başarısız!" mesajını ve yanıtın durum kodunu yazdırıyoruz.


kbrn6ph.png


HTTParty İle Post İsteği

Ruby:
require 'httparty'

# POST isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts'

# Gönderilecek veri (JSON formatında)
data = {
  title: 'foo',
  body: 'bar',
  userId: 1
}

# POST isteği gönderme
response = HTTParty.post(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' })

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end

require 'httparty': HTTParty kütüphanesini dahil ediyoruz.

url = 'https://jsonplaceholder.typicode.com/posts': POST isteğinin gönderileceği URL'yi belirtiyoruz. Bu örnekte, JSONPlaceholder API'sinden post oluşturmak için kullanılan bir URL kullanılmıştır.

data = {...}: Gönderilecek veriyi (JSON formatında) bir hash olarak tanımlıyoruz. Bu örnekte, "title", "body" ve "userId" alanları içeren bir veri kullanılmıştır.

HTTParty.post(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' }): HTTParty'nin post yöntemini kullanarak POST isteğini gönderiyoruz. body parametresi, gönderilecek veriyi (JSON formatında) içerir ve headers parametresi, isteğin başlıklarını belirtir. Burada "Content-Type" başlığı "application/json" olarak ayarlanmıştır çünkü gönderilen veri JSON formatındadır.

if response.success?: Gönderilen isteğin başarılı olup olmadığını kontrol ediyoruz.

puts "İstek başarılı! Durum kodu: #{response.code}": Eğer istek başarılıysa, konsola "İstek başarılı!" mesajını ve yanıtın durum kodunu (response.code) yazdırıyoruz.

puts "Yanıt gövdesi:": Eğer istek başarılıysa, yanıtın gövdesini yazdırmak için bir başlık mesajı yazdırıyoruz.

puts response.body: Eğer istek başarılıysa, yanıtın gövdesini (response.body) ekrana yazdırıyoruz.

else: Eğer istek başarısızsa, bu blok çalışır.


puts "İstek başarısız! Durum kodu: #{response.code}": Eğer istek başarısızsa, konsola "İstek başarısız!" mesajını ve yanıtın durum kodunu (response.code) yazdırıyoruz.

kbrn6ph.png


HTTParty İle PUT İsteği
Ruby:
require 'httparty'

# PUT isteği gönderilecek URL
url = 'https://jsonplaceholder.typicode.com/posts/1'

# Güncellenecek veri (JSON formatında)
data = {
  title: 'foo',
  body: 'bar',
  userId: 1
}

# PUT isteği gönderme
response = HTTParty.put(url, body: data.to_json, headers: { 'Content-Type' => 'application/json' })

# Yanıtı kontrol etme
if response.success?
  puts "İstek başarılı! Durum kodu: #{response.code}"
  puts "Yanıt gövdesi:"
  puts response.body
else
  puts "İstek başarısız! Durum kodu: #{response.code}"
end


İyi forumlar.


Yine döktürmüşsün bakıyorum da 🥰
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.