WordPress Notları

WordPress Haberleri,İpuçları,Eklentileri,Temaları ve dahası

  • Haberler
  • İpuçları
  • Nasıl Yapılır
  • Eklentiler
  • Temalar
  • Multisite
  • Güvenlik

13 Ağustos 2013 tarihinde Mustafa Uysal yazdı Yorum yapın

WordPress HTTP API

http_api

HTTP API harici bir kaynak ile etkileşim (POST,GET) kurmamız gereken durumlarda işimizi kolaylaştıran bir api’dir . Farklı kaynak demişken tabii ki verileri cURL ile yada file_get_contents ile alabilirsiniz ancak sunucu tabanlı bağımlılığı azaltmak için WordPress HTTP API kullanmamız daha faydalı olacaktır.

Şimdi gelelim işlerin büyük bir kısmını halledebileceğimiz metodlara, (tüm listeyi buradan görebilirsiniz)

wp_remote_get()

Kaynaktan veri çekmeye sağlar, gelen cevapta header ve content değerleri bulunur.


//zorunlu olarak kayak url belirtilmelidir
$data = wp_remote_get( "http://wphandle.com");

// opsiyonel olarak $arg kullanabilirsiniz.
$data = wp_remote_get( $url,
        array(
             'timeout' => 120,
             'httpversion' => '1.1',
             'sslverify' => false )
        );

//sayfanın çıktısı için
if ( $data['response']['code'] == 200  ) { // http durum kodunu kontrol et
     $result = $data["body"];
}
// eğer geçerli bir veri dönmezse WP_ERROR objesi döner.

Ayrıca bkz: codex

wp_remote_post()

Adından da anlaşıldığı üzere uzak sunucuya veri göndermeye yarar.

Örnek olarak yandex metrica eklentisinde kullandığım oauth doğrulama fonksiyonunu ele alacağım.

/**
 * kodu okumadan önce uygun parametlerelerin
 * yandex server'ına gönderilmesi sonucunda json veri döndürüldüğünü bilmeniz yeterlidir.
 */
public function connect_oauth_server( $confirmation_code ) {
        // gerekli parametreler
        $param = 'grant_type=authorization_code&code='.$confirmation_code.'&client_id='.$this->app_id.'&client_secret='.$this->app_secret.'';
        $url = "https://oauth.yandex.com/token";

        //header'da göndereceklerimiz
        $header = array(
            'POST /token HTTP/1.1',
            'Host: oauth.yandex.com',
            'Content-type:  application/json',
            'Content-Length: ' . strlen( $param ),
        );

        $data = wp_remote_post( $url, array(
                'method' => 'POST',
                'timeout' => 45,
                'httpversion' => '1.1',
                'header' => $header,
                'body' => $param,
                'sslverify' => false
            )
        );

        $http_code = $data["response"]["code"];
        // http durumu kontrolü
        if ( ( $http_code != '200' ) && ( $http_code != '400' ) ) {
            $this->error = $http_code;
            return false;
        }

        // json veriyi $result array'ına atadık.
        $result = json_decode( $data["body"], true );

        if ( empty( $result['error'] ) ) {  // hata mesajı kontrolü
            $this->access_token = $result['access_token'];
            return true;
        } else {
            $this->error = $result['error'];
            return false;
        }

    }

ilkine göre örnek biraz uzun oldu, meraklısına codex

HTTP API ref.

Bunu paylaş:

  • Tweet
  • Daha fazla
  • Tumblr' da Paylaş
  • Reddit
  • E-posta

İlgili

Kategori:İpuçları, Nasıl Yapılır Etiketler: http api, wordpress api, wordpress get, wordpress http, wordpress http api, wordpress post, wordpress uzak sunucu

Hakkımda Mustafa Uysal

WPNotları'nın kurucu editörü. WordPress üzerine yazar, çizer arada katkı yapar.

Bir cevap yazın Cevabı iptal et

Lütfen gerçek bilgilerinizi kullanın. Herhangi bir site adı ile yazılan yorumlar onaylanmayacaktır!

Popüler Yazılar & Sayfalar

  • WordPress Resim Kalitesini Düzenleyin
    WordPress Resim Kalitesini Düzenleyin
  • WordPress'de Alt Sayfaları Ana Sayfaya Yönlendirmek
    WordPress'de Alt Sayfaları Ana Sayfaya Yönlendirmek
  • Centos Üzerinde Nginx - WordPress Multisite - Php-fpm Kurulumu ve Yapılandırması
    Centos Üzerinde Nginx - WordPress Multisite - Php-fpm Kurulumu ve Yapılandırması

Bloga e-posta ile abone ol

Bu bloga abone olmak ve e-posta ile bildirimler almak için e-posta adresinizi girin.

Blogroll

  • HandyPlugins
  • NoCodeWP
  • Powered Cache
  • WholeStuff
  • WPHandle
  • Hakkımızda
  • İletişmeyin!
  • Bülten Gönder
  • Site Haritası
  • Gizlilik Politikası

© 2023 - WPNotlari

Bu internet sitesinde, kullanıcı deneyimini geliştirmek ve internet sitesinin verimli çalışmasını sağlamak amacıyla çerezler kullanılmaktadır. TamamGizlilik politikası