残りの技術を導入する方法
この物語には2つの側面には、最初の方法は、合法的な残りのリクエストを生成し、 2つ目の反応はどのように処理するか確認します。 リクエストの生成リクエストを生成したときのこととなると、次の3つのメインオプションがあります。 最初に、手動で生成することができ、リクエストを使用して、 phpのヘッダー機能します。 これにより、柔軟性を完全にあなたのリクエストを生成して、最もコーディングを伴うわけではありました。 第二に、使用することができphpの1つに組み込まれている機能のリクエストなどfile_get_contents ( )の( )またはファイル/ fopen ( )で、 fread ( )とfclose ( )のです。 この方法では、たくさんの詳細な情報は自動的に処理されるphpのは、お手元に届いたのと同じ反応します。 最後に、使用することができ、カスタムクラスに設計された、 apiの問題に使用されます。 通常、これらのクラスを必要以上のパラメータのリストに何もない、との結果が返されという形で、カスタムオブジェクトまたはクラスを介してアクセス可能にしています。 マニュアル世代リクエストを生成するだけで、手動では難しい、初めて、それ以降は、コードの再利用性やモジュールの機能キックを生成します。概念的にはかなり基本的なリクエストします。 第一に、すべてのリクエストパラメータが用意さを確保するための適切な伝送します。 次に、指定してエンドポイントが生成され、その後パースを構成すると壊れた部分があります。 最後に、リクエスト自体はソケットを使用して送信: functioncallapi ( $終点、 $ devkey 、 $アクション、 $タイプ、 $キーワード) 3つのパラメータが渡されるurlエンコードされます。 これは彼らを確保するために必要なのは、適切に渡されます。 は、前の例では、検索を実行する"スタイル"が行われ;検索された場合、代わりに"スタイルブック"のエンコードに必要なスペースが、その結果% 20bookスタイルします。 私が無視されたエンコーディングdevkey変数、信じて疑わないことはどうなるだろうとの発行権限を考慮し作成する際に使用されている。 $ = $ urlのエンドポイントします。 " ? devkey = $ devkey &アクション&アクションタイプ= $ = $ = $キーワードを入力したキーワード& " ; ここでのurl自体が生成され、パラメータを含め、今すぐにエンコードします。 urlをする必要がありdeconstructedダウン部品のコンポーネントを使用するために、 rawソケット接続してください。 $ fp =にfsockopen ( $ホスト、 80 ) ; ここでの情報が生成されたコードの前の最後に送信されます。 fputs ( )の最初の行のパスを要請文書を送信し、 2番目の行を指定し、希望のホストになります。 応答$ = " " ; 最後に、応答が作成およびコンテンツの応答が返されます。 ハンドル応答する方法を説明して、セクションの側面に対処することをまもなく開始します。 クイック世代phpの活用に組み込まれているファイルの関数の場合、同じプロセスを完了できるようにコードをはるかに少ない(ただし、柔軟性が少ないこと)します。 この関数は概念的に同じで、前の作品の1つを除いて、すべてのファイルを1つのソケットの通話が可能に置き換えられfile_get_contents ( )の電話をかける: functioncallapiquick ( $終点、 $ devkey 、 $アクション、 $タイプ、 $キーワード) 実際には多くのことを説明し、この例です。 urlエンコードは、以前に話し合っており、 1つのfile_get_contents ( )の呼び出しを処理するすべての魔法のようだ。 アンパサンドの前に関数呼び出しが使用され、任意の警告を抑制することによって生じる可能性が存在しファイルまたはurl 、処理されなければならないため、これらの関数の呼び出し( file_get_contents ( )はfalseを返しこれらのインスタンス)します。 前のphp5環境を使用する必要がありfopen ( )の代わりにfile_get_contents ( )をします。 ある程度の柔軟性が失われ、このタイプのリクエストは、もはや設定ができますので、カスタムヘッダまたはオプションのヘッダーは、要求されるかもしれないかに応じて、非常に望ましいとしているapiの相互作用します。 自動ツールウェブサービスとしての人気が高くなると、普及するだろうということを処理するクラスをビルドされ、実際の汚い仕事は、サーバーと相互作用します。 サービスをしたい場合には、クラス内で利用可能な、それだけの価値は確かに検討しています。 にアクセスしてクラスはもちろん、クラス自体に依存しています。 なければなら十分なドキュメントが付いてくる、とアクセスされる可能性が異なる過ぎませんから、以前の例-だけで、もう少しエラーチェック(希望)します。 何かを念頭に置いておくには、多くの先進国とビルドされモジュールが維持される第三者機関は、このように、しばらく待っている場合がありますが発売された後の新機能のapiかれらのためになることでご利用いただけるクラスです。 処理応答どのように対処する反応に依存して、リクエストを送信する方法を選択します。 リクエストを生成した場合は、手動で、またはいずれかの助けを借りて1つのphpに組み込まれている機能( file_get_contents ( )のような)を手動で処理する必要があり、応答します。 使用した場合は、サードパーティ製のモジュールで、それには、独自のインターフェイスを取得するために結果を確認する。 手動での応答解析サーバーの応答で提供されなければならないxmlドキュメント;幸いなことに、 xmlのパースは簡単に設計されています。 残念なことに、どんなに設計だったが、手動ではありません、通常の解析に何かとても面白かった。 付属のphp5のsimplexmlで、これによりxml文書を簡単に処理します。 php4持っていないユーザーのsimplexml ;しかし、いくつかのようなサードパーティ製のモジュールを実行してminixml似たような機能が利用できます。 応答を受信していただけましたら、付着してsimplexmlオブジェクトなければならない非常に簡単です。 ライブラリを使って、前の例と機能のリクエストは、結局のところ、このように: 応答ドル= callapiquick ( ' http://library.example.com/api.php ' 、 '123 ' 、 '検索' 、 ここでは、虚偽の応答ではありません(したがって、何かを期待していたのxmlおそらく、返された)します。 注意して、この仮定は通常かなり有効とします。 サーバーapiを提供することに遭遇したときに、エラーを提供しなければならすてきなxml形式の中にエラーが発生します。 して代入するsimplexml_load_string ( )関数は、応答オブジェクトのxmlとターンして直接アクセスすることができ、反復を通して、としています。 最後に、 print_r ( )の機能は、ユーザーフレンドリーな出力結果を表示し、オブジェクトの内容を示すように、ここで: simplexmlelementオブジェクト ) [ 1 ] = > simplexmlelementオブジェクト 出力して見ると、カップルなければならないことを、ただちに明らか:
すべての情報を念頭に置いてベアリングして、いくつかのクイック行のコードはすべてのコンテンツを探求することが必要です。より完全にします。 エコー"を検索対象: ( $ xmlで>リクエスト> -パラメータ>の引数[ 3 ] ->値) < br>" ;エコー"ここではお客様のxml - ( $ >応答> resultcount )結果<br> " ; foreach ( $ xmlで>応答>アイテムとしてアイテム& $ ) ( エコー" ( $アイテム- > ( $されるアイテムのタイトル) - > )著者<br> " ; ) ここでは、検索クエリの結果とカウントが提示し、その後、結果自体は反復処理がします。 ちょっと変な構文を取得する際に対処する配列(デモンストレーションとしては、印刷時には、検索クエリ)は、理にかなっているので、それはしばしば明確にするために反復処理しています。 残りの効果的な方法は、リモート照会apiのときは、リクエストの部分を許容して取引を明確にして行われています。 残りのクエリを作成するには、同じように簡単にurlをエンコードして必要なパラメータを指定すると、エンドポイントのコールします。 残りの回答を扱うことができ少し難しく;しかし、 simplexmlのようなツールを活用され、それも迅速に完了することができます。 これは、記事に追加されemanuelaヘドリック
|
|||
|