目次
キーテイクアウト
httplugのプラグインは何ですか?httplugのプラグインを使用して、httpクライアントに機能を追加するために使用します。これらは、認証、キャッシュ、エラー処理などの機能を追加するために使用できます。プラグインコンツクラスのAddPluginメソッドを使用してプラグインをクライアントに追加できます。 httpclientexceptionインターフェイスを実装します。これらの例外をキャッチし、必要に応じてそれらを処理できます。さらに、ErrorPluginを使用して、非200の応答を自動的に例外に変換できます。
ホームページ バックエンド開発 PHPチュートリアル php-httpとhttplugでguzzle5から解放されます

php-httpとhttplugでguzzle5から解放されます

Feb 16, 2025 am 10:04 AM

php-httpとhttplugでguzzle5から解放されます

キーテイクアウト

    PHP-HTTPによるプロジェクトであるHttPlugは、あらゆるHTTPクライアントをSDKに簡単に注入できるようになり、既に使用されているHTTPクライアントが既に使用されていて、ガズルの使用を避けたいアプリケーションのソリューションを提供します。
  • httplugインターフェイスパッケージとGuzzle 6を一緒に引き込むことができます。これにより、httplugのhttpclientインターフェイスを実装するGuzzle 6またはその他のアダプターを使用できます。
  • PHP-HTTPプロジェクトは、Guzzle 5および6、およびZend1と2を含むPHPのすべてのHTTPクライアントを最大限にサポートすることを目的としています。 🎜>
  • diffbot SDKは、HTTPクライアントの他の実装とPSR-7の互換性と受容性になりました。すべてが箱から出して作業するために、HTTPLUGインターフェイスを尊重するアダプターのみが必要です。
  • httplugは、アプリでHTTPクライアントの実装を抽象化するための新しいアプローチを提供し、抽象化の1つの追加レイヤーのコストの拡張性を提供します。
  • この記事は、MárkSági-KazárとDavid Buchmannによってピアレビューされました。 SetePointコンテンツを最高にするためにSitePointのピアレビュアーのすべてに感謝します!
  • 以前のシリーズでは、diffbot用のPHPクライアントを構築しました。クライアントはうまく機能し、比較的広く使用されています。ライブアプリでテストして、標準に達していることを確認しましたが、Guzzle 5に大きく依存します。 これには2つの問題があります:
Guzzle 6が外出しており、PSR 7をサポートしています。Guzzleの著者は、Guzzle 5が近い将来にサポートされると主張していますが、その寿命に懐疑的である方が安全です。その上、PSR 7には癖があるかもしれませんが、他のプロジェクトとの互換性のためだけにPSRをフォローするのは良いことです

アプリにクライアントを実装している人は、すでに好ましいHTTPクライアントを使用している可能性があり、Guzzleではなく使用したいと考えています。 SDKへのhttpクライアントを簡単に注入できるようにする必要があります。


偶然にも、それを行うことができる新しいプロジェクトがあります:httplug。

  1. 注:フォローするDiffbot SDKの内部ロジックに精通する必要はありません。この記事のプロセスは、具体的なHTTPクライアントの実装を備えた任意のパッケージに適用でき、簡単に従うことができます。
  2. php-httpおよびhttplug
  3. PHP-HTTPは、PHPのHTTP関連ツールのGitHub組織です。 PSR-7リクエストと応答に加えて最小限のHTTPクライアント契約を定義するためのインターフェイスと例外のコレクションであるHTTPlugを提供します。この契約の実装は、仮想パッケージのphp-http/client-implementationを提供しますこれは、Guzzle 6を使用する人が作曲家を使用している人が、Adapterの依存関係として、Adapter、Httplug Interfaceパッケージ、およびGuzzle 6自体を引き込むためにphp-http/guzzle6-adapterを必要とすることを意味します。

    httplugは、再利用可能なパッケージのエントリポイントです。これは、すべてのクライアント(guzzle6アダプターなど)が基づいているクライアントの抽象化です。これらのクライアントはさらに、基礎となるパッケージ /依存関係をさらに利用します - この場合はguzzle 6。

    だから、下から上:

    HTTPクライアントが存在します(Guzzle 6)

      Guzzle 6アダプターは、インターフェイスとしてHTTPlugを使用して構築されています。Guzzle6
    • をラップします。
    • http呼び出しを必要とする必要があるアプリは、クライアントを必要とし、httplugのhttpclientインターフェイスが必要です。
    • アプリは、Guzzle 6、またはhttplugのhttpclientインターフェイスを実装し、別のサードパーティのhttpクライアントをラッピングする他のアダプターを使用できます
    • チームの計画は、最終的にPHPランドのすべてのさまざまなHTTPクライアントを最大限にサポートすることです:Guzzle 6、Guzzle 5、Zend2、Zend1など。クライアントバージョン、そして適切なアダプターをミックスに接続するだけです。
    • adapter
    and

    クライアント

    という用語を使用することに注意してください。ここでは、Httplugに基づくアダプターは両方です。彼らは既存のクライアントを中心にラッパーですが、クライアント自身として直接使用されています。 この投稿の計画は、DiffbotのPHPクライアントのコンクリートガズル5依存関係をHTTPlugバージョンに置き換えることです。

    注:httplugおよび関連パッケージはアルファソフトウェアであるため、変更される場合があります。それらを使用するために何でも変換することは、危険な努力です ブートストラップ いつものように、環境をブートストラップするために改善されたHomesteadを使用することをお勧めします。準備ができたら、SDKの現在の安定したバージョンをクローンしてテストできます。

    最後のコマンドは、phpunitが開発環境にグローバルにインストールされていると想定しています。 すべてのテストに合格するはずです(ナンセンスのために盗聴されていないスキップされたテストを除く)。したがって、変換を開始する準備ができています。

    始めましょう

    最初に、このアップグレードを開発するための新しいブランチを作成する必要があります。

    次に、Composer.jsonファイルに2つの依存関係を追加します:

    git clone https://github.com/swader/diffbot-php-client
    cd diffbot-php-client 
    git checkout tags/0.4.5 
    composer install
    phpunit
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    これが行うことは、これがクライアントに、これからは

    仮想パッケージ - これに依存することを伝えます。これは、使用するために、Diffbotクライアント(このような)を使用するアプリケーション(このパッケージの実装(Packagistのリンクにリストされているものの1つ)を選択する必要があることを意味します。もちろん、パッケージの開発中に、実際の実装なしですべてが機能しているかどうかをテストして確認することは不可能であるため、追加の要件依存関係を指定します。上記の特定のケースでは、「php-http/guzzle6-adapter」:「〜0.2@dev」を使用します。単に最新のものであり、安定したリリースがないという理由だけで、その特定のバージョンを選択しました。

    注:通常のようにターミナルで依存関係をインタラクティブに宣言するのではなく、なぜcomposer.jsonに値を追加するアプローチを使用したのか疑問に思うかもしれません。これは、作曲家が仮想パッケージで要求することでエラーがスローされるためです。パッケージは実際には存在せず、仮想名、プレースホルダーだけなので、作曲家はインストールを知らずに混乱します。これへの変更を示唆する問題がありますが、すぐに起こることはありません。

    php-httpパッケージはまだ激しい開発中であるため、次の2つの値をcomposer.jsonファイルに追加する必要があります。 これは、開発パッケージ(安定)のインストールを許可することですが、存在する場合は安定したバージョンを好みます。したがって、非常に不安定なPHPunit 5.2.xをフェッチするのではなく、5.0.8(執筆時点で最も最新)を取得しますが、持っていないパッケージを尋ねると成功します。安定したリリース(guzzle6-adapterなど)。

    また、guzzle6をインストールする場合は、guzzle5への依存性を削除する必要があります。最終的な要求ブロックは次のようになります:

    git checkout -b feature-httplug
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    プラン

    SDKが現在機能する方法は次のとおりです。メインのDiffbotクラスでは、オプションでHTTPClientを設定します。これは現在、バージョン5でのGuzzleの実装にバインドされています。カスタムクライアントインスタンスが設定されていない場合、Diffbotクラスはデフォルトのクライアントを自動的に使用します。 このクライアントは、API Abstractの呼び出しメソッドで使用され、指定されたURLにGETリクエストを発行します。さらに、Crawl APIクラスと検索APIクラスにカスタムコールメソッドがあります。

    コールの結果は、$応答として保存されます。これはguzzle5応答です。その応答は、その有効性をチェックし、そこからエンティティを構築するエンティティファクトリーによってさらに処理され、エンティティイテレーターにプッシュされます。 したがって、計画は

    です
    1. diffbot :: sethttpclientをhttplug実装を受け入れるメソッドに置き換えます
    2. API要約、クロール、および検索クラスのコールメソッドを変更して、提供されたHTTPクライアントの実装でGETリクエストを発行できるようにします。
    3. エンティティファクトリーとエンティティのイテレーターを変更して、それらがもはやguzzle5バージョンの応答に依存せず、むしろPSR-7カウンターパートに依存します。
    4. PHP-HTTPプロジェクトには、httpmethodsclientを含む追加のパッケージ、utilsがあります。そのクラスは、メッセージファクトリーとHTTPクライアントを1つの全体に包み、Get、投稿などの一般的に使用される動詞でリクエストを簡単に送信できます。 ..)。さらに、PSR-7 ResponseInterfaceも返します。つまり、GetBodyメソッドが利用可能になります。これは、Tojsonメソッドのみが実装されていないことを意味します。
    さらに、このプロジェクトには発見コンポーネントがあり、インストールされた工場やクライアントを発見するための静的クラスをいくつか備えています。これにより、場合によってはエンドユーザーにゼロコンフィグレーターエクスペリエンスを提供できます(ドキュメントを参照)。

    バトルプランがレイアウトされていると、リファクタリングを始めることができます。

    前提条件

    追加のパッケージが必要です:

    diffbot class

    diffbotクラスには、上部にこの行があります:
    git clone https://github.com/swader/diffbot-php-client
    cd diffbot-php-client 
    git checkout tags/0.4.5 
    composer install
    phpunit
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    次のように変更できます

    メソッドは次のようにリファクタリングする必要があります

    git checkout -b feature-httplug
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    または、発見クラスは、クラスの上部にある使用ステートメントを使用してインポートできます。

    この変更により、Diffbot SDKのエンドユーザーが次のようになりました。
    	"require": {
            ...
            "php-http/client-implementation": "^1.0"
        },
        "require-dev": {
            ...
            "php-http/guzzle6-adapter": "~0.2@dev"
        },
    
    ログイン後にコピー
    ログイン後にコピー

    独自のクライアントをインストールし、httpmethodsclientと並行してディスカバリーコンポーネントを自動的に処理させます。 を完全な柔軟性のためにsethttpclientメソッドに注入します

    "prefer-stable": true,
    "minimum-stability": "dev"
    
    ログイン後にコピー
    ログイン後にコピー
    ほとんどのユーザーはこれをAutoPilotで使用します

    api要約、クロール、検索

    次に、通話方法。

    • 以前に実装したhttpmethodsclientインスタンスには、getメソッドがあるため、その点で変更は必要ありません。ただし、$ ResponseインスタンスはMistMatchを示しており、正当な理由があります。 EntityFactoryが期待する元の$応答は、guzzle5応答です。

      EntityFactoryによって苦情が発行されているため、API要約を編集する必要はありません。それ自体で物事を処理します。クロールクラスのコールカウンターパートは少し違う:

      git clone https://github.com/swader/diffbot-php-client
      cd diffbot-php-client 
      git checkout tags/0.4.5 
      composer install
      phpunit
      
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      ここでの2つの警告 - $応答のJSONメソッドを使用するメソッドの2行目と、guzzle5応答を期待するエンティティテーターインスタンス化。ここから影響を与えることができる唯一の線は前者ですので、それを変更してみましょう:

      git checkout -b feature-httplug
      
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      同様の変更を検索クラスの通話方法で行う必要があります。

      の変更:
      	"require": {
              ...
              "php-http/client-implementation": "^1.0"
          },
          "require-dev": {
              ...
              "php-http/guzzle6-adapter": "~0.2@dev"
          },
      
      ログイン後にコピー
      ログイン後にコピー

      Entity Factory
      "prefer-stable": true,
      "minimum-stability": "dev"
      
      ログイン後にコピー
      ログイン後にコピー

      EntityFactoryクラスには、上部に次のインポートがあります。

      これを次のように変更できます

          "require": {
              "php" : ">=5.4.0",
              "php-http/client-implementation": "^1.0"
          },
          "require-dev": {
              "symfony/var-dumper": "~2",
              "phpunit/phpunit": "^5.0",
              "php-http/guzzle6-adapter": "~0.2@dev"
          },
      
      ログイン後にコピー
      エンティティファクトリークラスが実装するエンティティファクトリーインターフェイスでも同じことを行う必要があります。

      他の変更は、クロールクラスで上記のことと似ています。変更:
      composer require "php-http/utils" "php-http/discovery"
      
      ログイン後にコピー

      use GuzzleHttp\Client;
      
      ログイン後にコピー
      CheckResponseFormatとcreateApSofsteritoratorメソッドの両方で。

      entity iterator
      use Http\Client\Utils\HttpMethodsClient as Client;
      
      ログイン後にコピー

      変更:

      から

      <span>/**
      </span><span> * Sets the client to be used for querying the API endpoints
      </span><span> *
      </span><span> * <span>@param Client $client
      </span></span><span> * <span>@see http://php-http.readthedocs.org/en/latest/utils/#httpmethodsclient
      </span></span><span> * <span>@return $this
      </span></span><span> */
      </span><span>public function setHttpClient(Client $client = null)
      </span><span>{
      </span>    <span>if ($client === null) {
      </span>		<span>$client = new Client(
      </span>		   <span><span>\Http\Discovery\HttpClientDiscovery</span>::find(),
      </span>		   <span><span>\Http\Discovery\MessageFactoryDiscovery</span>::find()
      </span>		<span>);
      </span>    <span>}
      </span>    <span>$this->client = $client;
      </span>    <span>return $this;
      </span><span>}
      </span>
      ログイン後にコピー
      テスト

      HTTPリクエストとAPI呼び出しをテストする主な方法であるモッキングは、Guzzle 6では異なるため、テストにはわずかに大きなオーバーホールが必要です。 このチュートリアルはすでに少し長いので、Guzzle 5とGuzzle 6、特にDiffbot SDKの2つのバージョン間のモッキングの違いを学ぶことに興味がある場合は、関連する機能ブランチをご覧ください。 。

      <span>public function call()
      </span><span>{
      </span>    <span>$response = $this->diffbot->getHttpClient()->get($this->buildUrl());
      </span>
          <span>$array = $response->json();
      </span>
          <span>if (isset($array['jobs'])) {
      </span>        <span>$jobs = [];
      </span>        <span>foreach ($array['jobs'] as $job) {
      </span>            <span>$jobs[] = new JobCrawl($job);
      </span>        <span>}
      </span>
              <span>return new EntityIterator($jobs, $response);
      </span>    <span>} elseif (!isset($array['jobs']) && isset($array['response'])) {
      </span>        <span>return $array['response'];
      </span>    <span>} else {
      </span>        <span>throw new DiffbotException('It appears something went wrong.');
      </span>    <span>}
      </span><span>}
      </span>
      ログイン後にコピー
      最後に、テストを実行しましょう:

      成功!すべての合格(予想されるスキップテストを除く)。

      diffbot SDKは、PSR-7互換性だけでなく、HTTPクライアントの他の実装を受容的にしています。必要なのは、httplugインターフェイスを尊重するアダプターだけで、すべてが箱から出して作業する必要があります。

      結論

      HTTPLUGは、ビルドするアプリでHTTPクライアントの実装を抽象化するための便利な新しいアプローチです。 HTTPクライアントを自分で構築している場合でも、他のアプリでそれらを使用している場合でも、PHP-HTTPは、抽象化の1つのレイヤーのリーズナブルな価格の拡張性のまったく新しい世界を提供します。
      $array = json_decode($response->getBody(), true);
      
      ログイン後にコピー
      アダプターの実装を追加するか、パッケージを試してフィードバックを提供するだけで支援したい場合は、チームはすべての貢献を歓迎します。連絡を取るか、以下のコメントセクションにフィードバックを残してください。このチュートリアルが興味深いと感じた場合は、ボタンのようにヒットすることを忘れないでください!

      PHP HTTPおよびHTTPLUG

      に関するよくある質問(FAQ)

      guzzle5とphp http/httplugの違いは何ですか。 Guzzle5は特定のHTTPクライアントであり、PHP HTTPは任意のHTTPクライアントを使用できる抽象化レイヤーです。 HTTPlugは、追加機能を提供するPHP HTTPの拡張機能です。主な違いは、PHP HTTPとHTTPLUGが特定のHTTPクライアントに結び付けられていないため、より柔軟性と相互運用性を可能にすることです。 > Guzzle5からPHP HTTP/HTTPLUGに移行するには、Guzzle5クライアントをPHP HTTPインターフェイスを実装するアダプターに置き換えることが含まれます。これは、guzzle5を含むさまざまなHTTPクライアントにアダプターを提供するHTTPlugライブラリを使用して実行できます。アダプターがセットアップされたら、PHP HTTPメソッドを使用してリクエストを送信し、応答を処理できます。 guzzle5でphp http/httplugを使用すると、柔軟性と相互運用性が向上します。 PHP HTTP/HTTPLUGを使用すると、コードを変更せずに異なるHTTPクライアントを切り替えることができます。これにより、さまざまなクライアントでアプリケーションをテストし、必要に応じてクライアントを切り替えることが容易になります。さらに、HTTPlugは、HTTPクライアントに機能を追加できるプラグインシステムを提供します。 PHPの依存関係管理ツール。コマンドコンポーザーを実行して、php-http/httplugを実行することでインストールできます。これにより、httplugライブラリとその依存関係がダウンロードされます。

      php http/httplugを使用してリクエストを送信するにはどうすればよいですか?

      php http/httplugでリクエストを送信するには、最初に作成する必要があります。リクエストオブジェクト。これは、MessageFactoryインターフェイスのCreaterequestメソッドを使用して実行できます。リクエストオブジェクトを取得したら、HTTPCLIENTインターフェイスのSendRequestメソッドを使用して送信できます。 ResponseInterfaceインターフェイスで表されます。 getStatusCode、getheaders、およびgetBodyメソッドを使用して、応答のステータスコード、ヘッダー、および本文にそれぞれアクセスできます。 php http/httplugのディスカバリーコンポーネントは、利用可能なHTTPアダプターとメッセージ工場を自動的に見つけて使用するために使用されます。これにより、異なるHTTPクライアントを切り替え、利用可能な最良の実装を使用しやすくなります。 httpclientdiscoveryまたはmessagefactorydiscoveryクラスの静的検索メソッドを呼び出します。これにより、最初に利用可能なHTTPクライアントまたはメッセージファクトリーのインスタンスが返されます。

      httplugのプラグインは何ですか?httplugのプラグインを使用して、httpクライアントに機能を追加するために使用します。これらは、認証、キャッシュ、エラー処理などの機能を追加するために使用できます。プラグインコンツクラスのAddPluginメソッドを使用してプラグインをクライアントに追加できます。 httpclientexceptionインターフェイスを実装します。これらの例外をキャッチし、必要に応じてそれらを処理できます。さらに、ErrorPluginを使用して、非200の応答を自動的に例外に変換できます。

以上がphp-httpとhttplugでguzzle5から解放されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles