{"id":232046,"date":"2022-12-30T19:44:00","date_gmt":"2022-12-30T16:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232046"},"modified":"2022-11-10T07:22:44","modified_gmt":"2022-11-10T04:22:44","slug":"lavorare-con-curl-wordpress-e-valet","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/lavorare-con-curl-wordpress-e-valet\/","title":{"rendered":"Lavorare con cURL, WordPress e Valet"},"content":{"rendered":"\n<p>Sono uno di quei tipi che usa <code>1.1.1.1<\/code>e <code>1.0.0.1<\/code>come i miei <a href=\"https:\/\/1.1.1.1\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">server DNS primari<\/a>.<\/p>\n<p>Ma un problema che deriva dall&#8217;utilizzo di questi come i miei server DNS principali (e forse altri, non lo so perch\u00e9 non li ho provati) \u00e8 che quando utilizzo cURL per effettuare richieste a un server di terze parti, spesso si tradurr\u00e0 in un 404.<\/p>\n<p>Fortunatamente, c&#8217;\u00e8 una soluzione facile.<\/p>\n<h2>cURL, WordPress e Valet<\/h2>\n<p>In breve, la semplice modifica consiste nell&#8217;aggiungere il tuo host locale come voce DNS alle tue preferenze di rete.<\/p>\n<p>Se sei interessato a vedere i passaggi necessari per farlo e qualche codice di esempio che non funzioner\u00e0 (prima della modifica, ovviamente), continua a leggere.<\/p>\n<p>Nota che user\u00f2 screenshot per questo, ma se ti senti a tuo agio nella modifica dei file DNS sul tuo sistema operativo nativo, funzioner\u00e0 altrettanto bene.<\/p>\n<h3>Aggiornamento DNS<\/h3>\n<p>A seconda del sistema operativo in uso, il modo in cui si arriva a modificare le impostazioni DNS varier\u00e0.<\/p>\n<p>Se stai utilizzando macOS, la scheda Rete e le opzioni Avanzate per qualsiasi adattatore da utilizzare per la connessione a Internet ti forniranno ci\u00f2 di cui hai bisogno per aggiornare.<\/p>\n<p>In quella schermata, fai clic sulla scheda DNS, quindi aggiungi <code>127.0.0.1<\/code>in cima all&#8217;elenco.<\/p>\n<h3>Codice di esempio<\/h3>\n<p>Quando si tratta di vedere il motivo alla base della necessit\u00e0 di fare qualcosa del genere, ho sempre trovato <a href=\"https:\/\/gist.github.com\/tommcfarlin\/648da0d8f306d0f17984beeed80039c7#file-00-curl-example-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">utile vedere il codice di esempio<\/a>. Il motivo principale \u00e8 che ci d\u00e0 qualcosa da testare prima di apportare le modifiche di cui sopra e poi dopo aver apportato le modifiche di cui sopra.<\/p>\n<pre><code>&lt;?php\ntry {\n    $curl = curl_init();\n    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');\n    curl_setopt($curl, CURLOPT_URL, $url);\n    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);\n    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);\n    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);\n    $response = curl_exec($curl);\n\n    if (is_object($response)) {\n        return false;\n    }\n\n    if (false === $response) {\n        throw new Exception(curl_error($curl), curl_errno($curl));\n    }\n\n    curl_close($curl);\n} catch (Exception $e) {\n    trigger_error(\n        sprintf(\n            'Curl failed with error #%d: %s',\n            $e-&gt;getCode(),\n            $e-&gt;getMessage()\n        ),\n        E_USER_ERROR\n    );\n}<\/code><\/pre>\n<p>Detto questo, ecco un po&#8217; di codice che stavo usando che non funziona senza il corretto DNS impostato sopra:<\/p>\n<p>Ma una volta che il DNS \u00e8 stato aggiornato, funziona perfettamente. E, per essere chiari, continuo a sostenere <code>[wp_safe_remote_get](https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_get\/)<\/code>e <code>[wp_safe_remote_post](https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/)<\/code>ma quella natura dei progetti determiner\u00e0 anche i vincoli che abbiamo.<\/p>\n<p>Inoltre, dai un&#8217;occhiata a queste funzioni, se ne hai la possibilit\u00e0, per vedere cosa sta succedendo dietro le quinte. \ud83d\ude42<\/p>\n<h2>\u00c8 tutto<\/h2>\n<p>Come ho detto prima, \u00e8 un processo facile. Ho trovato utile condividere sia il tipo di codice che potrebbe causare il problema, quindi se vedi qualcosa di simile e ottieni un risultato simile usando cURL, WordPress e Valet, allora sai come risolverlo.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Perch\u00e9 aggiornare le impostazioni DNS quando si lavora con cURL, WordPress e Valet pu\u00f2 risolvere i problemi.<\/p>\n","protected":false},"author":1,"featured_media":236977,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,835,751,804,783,720,844,865],"tags":[1168],"class_list":["post-232046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-guida-per-principianti","category-open-source-projektmanagement-3","category-php-6","category-software-open-source","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232046"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/236977"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}