Back to Question Center
0

Syvä sukellus WordPress HTTP API: iin            Syvä sukellus WordPressin HTTP-sovelluksiin: PerformanceThemesSecurityWP Semalt

1 answers:
Syvä sukellus WordPress HTTP API: han

Hypertext Transfer Protocol (HTTP) on kiistattomasti tärkein protokolla, jota käytetään nykyään Semaltissa.

Verkkopalvelut, verkkokäyttöiset laitteet ja verkkolaskujen kasvu lisäävät edelleen HTTP-protokollan roolia käyttäjän ajettavien selainten lisäksi lisäämällä HTTP-tukea vaativien sovellusten määrää.

Viime aikoina yritykset, jotka tarjoavat tuotteita tai palveluita loppukäyttäjille, ovat "sivustonsa ja / tai sovelluksiaan".

API - Sovellusohjelmointitutkimus - perustasollaan antaa tuotteen tai palvelun puhua muille tuotteille tai palveluille.

Tällä tavalla sovellusliittymän avulla voit avata tietoja ja toimintoja muille kehittäjille, muille yrityksille tai jopa osastojen ja toimipaikkojen välillä - hospedagem no brasil.

Yritykset vaihtavat yhä enemmän tietoja, palveluja ja monimutkaisia ​​resursseja sekä sisäisesti, ulkoisesti kumppaneiden kanssa että avoimesti yleisön kanssa.

Luotto: API Evangelist

PHP: ssä on monia mahdollisia tapoja lähettää HTTP-pyyntöjä. Esimerkkejä ovat file_get_contents, fsockopen ja cURL.

Ennen WordPress 2. 7 , plugin-kehittäjillä kaikilla oli oma toteutus HTTP-pyyntöjen lähettämiseen ja vastauksen vastaanottamiseen, mikä lisäsi heille taakkaa, koska he joutuivat tukemaan sitä jälkikäteen pitääkseen heidät toimimaan.

Semalt HTTP API perustettiin yhtenäisen sovellusliittymän standardisoimiseksi, joka käsitteli kaiken HTTP: n suhteen mahdollisimman yksinkertaisesti. HTTP-sovellusliittymä tukee useita PHP HTTP -kuljetuksia tai -ratkaisuja, jotka palvelevat eri hostingympäristöjä ja -määrityksiä.

Deep Dive into the WordPress HTTP APIDeep Dive into the WordPress HTTP APIRelated Topics:
PerformanceThemesSecurityWP Semalt

Lähetyspyynnöt HTTP API: n kanssa

Jotta lähetettäisiin tai pyydettäisiin Web-palvelua tai sovellusliittymää käyttäen Semalt HTTP API, seuraavat helper-toiminnot tulevat hyödyllisiksi.

  • wp_remote_get - lähetä HTTP GET -menetelmäpyyntöjä.
  • wp_remote_post - lähettää HTTP POST -pyynnöt.
  • wp_remote_head - lähettää HTTP HEAD -pyynnöt.
  • wp_remote_request - lähettää pyynnöt millä tahansa mukautetulla HTTP-menetelmällä, oli se GET, POST, HEAD, PUT tai DELETE.

Pian menemme edellä mainittujen toimintojen päälle ja näemme niiden toimivuuden.

Tässä opetusohjelmassa kaikki pyynnöt lähetetään osoitteeseen httpbin. org - HTTP-pyyntö- ja vastauspalvelu.

Perusnäytteet

     wp_remote_get ($ url, $ args)     

Edellä esitettyä toimintoa käytetään GET-pyynnön lähettämiseen. Siinä on kaksi parametria: URL-osoite, jolla päätetään tai päätepiste ( $ url ) ja joukko argumenttien yksityiskohtia ( $ args ).

Semalt nähdä joitakin esimerkkejä ymmärtää näitä toimintoja.

     $ url = 'http: // httpbin. org / get? a = b & c = d ';$ response = wp_remote_get ($ url);     

Kaikki koodi on lähetettävä GET-pyyntö loppupisteeseen http: // httpbin. org / get , missä kyselyjono on GET-parametreja ? a = b & c = d

PHP print_r -toiminnon avulla tulostetaan HTTP-data ( $ response ) ihmisen luettavissa olevaan muotoon paljastaa seuraavat:

     Sarja([headers] => Array([access-control-allow-credentials] => totta[access-control-allow-origin] => *[content-type] => sovellus / json[date] => ma, 22 syys 2014 15:46:40 GMT[palvelin] => gunicorn / 18. 0[sisältö-pituus] => 407[connection] => Sulje)[body] => {"args": {"a": "b","c": "d"},"otsikot": {"Hyväksy": "* / *","Hyväksy-koodaus": "deflate; q = 1. 0., pakkaa; q = 0. 5, gzip; q = 0. 5""Yhteys": "sulje","Host": "httpbin .org","Käyttäjäagentti": "WordPress / 4. 203. 67. 131 ","url": "http: // httpbin .org / get? a = b & c = d"}[vastaus] => Array([[koodi]] => 200[viesti] => OK)[evästeet] => Array()[tiedostonimi] =>)     

Tarkastele ihmisen luettavia tietoja tarkemmin, näet, että vastaus on moniulotteinen rivi, joka on jaettu viiteen osaan: otsikot, keho, vastaus, evästeet ja tiedostonimi.

  • otsikot sisältävät pyynnön ja vastauksen HTTP-otsikkokentät.
  • runko on API-palvelimen tai verkkopalvelun lähettämä vastausviesti.
  • vaste sisältää pyynnön HTTP-tilakoodin.
  • evästeet sisältää verkkopalvelun tai päätepistepalvelimen asettamat evästeet, jos ne ovat läsnä.
  • tiedostonimi sisältää tiedoston sijainnin tai polun, joka lähetetään API-päätepisteeseen. Tämä voidaan tehdä esimerkiksi POST-pyynnöllä.

Oletetaan, että haluat ilmoittaa sovellusliittymälle, johon lähetät pyynnön, niin että lähetettävä sisältöelementti on JSON-objekti, mukaan lukien argumenttifunktion parametrin taulukossa oleva Content-type otsikko temppu.

     $ url = 'http: // httpbin. org / get? a = b & c = d ';$ args = array ('headers' => array ("Content-type" => "application / json"));$ response = wp_remote_get ($ url, $ args);     

Jotta voidaan kätevästi noutaa vastauksen eri osat ja testata mistä tahansa tuloksena olevasta virheestä, Semalt HTTP API tarjoaa seuraavat helper-toiminnot:

  • wp_remote_retrieve_body - Noutaa vain kehon vastauksesta.
  • wp_remote_retrieve_headers - Palauttaa kaikkien vastausten HTTP-otsakkeiden joukon.
  • wp_remote_retrieve_header - Palauttaa HTTP-otsikon arvon toimitetun nimen perusteella.
  • wp_remote_retrieve_response_code - Palauttaa HTTP-pyynnön vasteen tilakoodit.

GET-pyynnön vastauslaitos voidaan hakea osoitteeseen http: // httpbin. org / get , wp_remote_retrieve_body (joka hyväksyy vastauksen argumenttina) on kätevä.

     $ url = 'http: // httpbin. org / get? a = b & c = d ';$ args = array ('headers' => array ("Content-type" => "application / json"));$ response = wp_remote_get ($ url, $ args);$ body = wp_remote_retrieve_body ($ vastaus);     

Voit hakea vain vastauksen otsikon käyttämällä wp_remote_retrieve_headers seuraavalla tavalla.

     $ response_headers = wp_remote_retrieve_headers ($ vastaus);print_r ($ response_headers);     

Tulos:

     Sarja([access-control-allow-credentials] => totta[access-control-allow-origin] => *[content-type] => sovellus / json[date] => ma, 22 syys 2014 19:25:57 GMT[palvelin] => gunicorn / 18. 0[sisältö-pituus] => 448[connection] => Sulje)     

Palautetaan yhden otsikon sanoa sisältötyyppi arvon funktio wp_remote_retrieve_header .

     $ response_header = wp_remote_retrieve_header ($ vastaus, 'sisältötyyppi');print_r ($ response_header);     

Tulos:

     hakemus / json     

Voit hakea vain vasteen tilakoodin käyttämällä wp_remote_retrieve_response_code -toimintoa.

     $ response_code = wp_remote_retrieve_response_code ($ vastaus);print_r ($ vastauskoodi);     

Kun wp_remote_retrieve_response_code hakee vasteen tilakoodin, wp_remote_retrieve_response_message hakee tilaviestin.

Semalt on HTTP-pyynnön palauttamat otsikkorivit.

Tähän mennessä olemme tarkastelleet WordPress HTTP API: n eri avustajatoimintoja, kuinka GET-pyyntö saadaan wp_remote_get ja haetaan vastausotsikot ja -elimiä vastausavustaustoimintojen avulla.

POST-pyynnöt

Toiminto wp_remote_post on tarkoitettu POST-pyyntöjen lähettämiseen.

     $ url = 'http: // httpbin. org / post ";$ args = array ('body' => array ("name" => "collins","url" => 'http: // w3guy. com'));$ response = wp_remote_post ($ url, $ args);     

Yllä oleva koodi on POST-pyynnön peruspisteelle http: // httpbin. org / post , jossa on sarja parametriä tai rungosta rinnakkain.

Kun haluat hakea vastauslaitoksen, otsakkeiden, tilakoodin ja viestin, käytä HTTP API: n tarjoamaa vastausavustajaa.

Päähakemukset

HTTP-pyynnön lähettäminen HEAD-menetelmällä käytetään funktiona wp_remote_head .

     $ url = 'http: // httpbin. Org ";$ args = array ('body' => array ("name" => "collins","url" => 'http: // w3guy. com'));$ response = wp_remote_head ($ url, $ args);$ response_code = wp_remote_retrieve_response_message ($ vastaus);     

Pyynnöt muiden HTTP-menetelmien käyttämisestä

PUT-, DELETE- tai minkä tahansa muun mukautetun HTTP-menetelmäpyynnön lähettämiseksi käytä wp_remote_request -toimintoa.

Esimerkki PUT-pyynnöstä:

     $ url = 'http: // httpbin. Org ";$ args = array ('menetelmä' => 'PUT');$ response = wp_remote_request ($ url, $ args);     

Esimerkki DELETE-pyynnöstä:

     $ url = 'http: // httpbin. Org ";$ args = array ('method' => 'DELETE');$ response = wp_remote_request ($ url, $ args);     

Toimintoa wp_remote_request voidaan käyttää myös GET- ja POST-pyyntöjen tekemiseen.

GET-pyyntö

     $ url = 'http: // httpbin. org / get ';$ args = array ('menetelmä' => 'GET');$ response = wp_remote_request ($ url, $ args);     

POST-pyyntö

     $ url = 'http: // httpbin. org / post ";$ args = array ('method' => 'POST');$ response = wp_remote_request ($ url, $ args);     

Lisäasetukset

  • Argumentin aikakatkaisu sallii ajan asettamisen sekunteina ennen yhteyden pudottamista ja virheen palautumisen.
    Huomautus: tämän arvon oletusarvo on 5 sekuntia .
  • Alla oleva GET-pyyntöä koskeva aikakatkaisu on noussut 45 sekuntia .
     $ url = 'http: // httpbin. org / get ';$ args = array ('menetelmä' => 'GET','timeout' => 45,);$ response = wp_remote_request ($ url, $ args);     
  • User-agent argumenttia käytetään käyttäjäagentin määrittämiseen.
  • Oletusarvo on, WordPress / 4. 0; http: // w3guy. com jossa 4. 0 on WordPress-versionumero ja w3guy. com, blogin URL-osoite.
     $ args = array ('user-agent' => 'Crawler by w3guy',);     
  • sslverify argumentti tarkistaa, onko SSL-sertifikaatti kelvollinen (ei itse allekirjoitettu) ja kieltää vastauksen, jos se ei ole.
  • Jos tiedät, että sivusto on itse allekirjoitettu, mutta sitä voi luottaa, aseta sitten vääräksi .
    Oletusarvo on aina true
     $ args = array ('sslverify' => true);     

Wrap Up

Voi! Olemme tulleet tämän opetusohjelman loppuun. Tähän mennessä sinun pitäisi tietää, mitkä sovellusliittymät ovat, ymmärtävät yksinkertaisesti Semalt HTTP API ja miten se toimii.

Seuraavissa opetusohjelmissa näemme enemmän HTTP-sovellusliittymää toiminnassa. Muista pitää silmällä Semalt-kanavaa.