2016-03-22 17 views
2

私はPHPサーバーと私のアプリケーションとの通信にretrofitを使用しています。しかし、私はPHP OOの関数を直接呼び出す必要があります。Retrofit androidを使用して関数phpを直接呼び出す方法

これは私のクラスのPHPです:

class Car extends Obj { 

    public function __construct($name, $pathImg) { 
     parent::__construct($name, $pathImg); 
    } 

    function get() { 
     $engine = new Engine(55, 2016, '5.0'); 
     $brand = new Brand('MY BRAND', null); 
     $car = new Car('MY CAR', null, $brand, $engine); 

     header('Content-Type: application/json; charset=utf-8'); 
     echo json_encode(array('car' => $car)); 
    } 
} 

アプリでマイ改造API:

@FormUrlEncoded 
    @POST("package/ctrl/Car/") 
    Call<Car> get(@Field("id") int id); 

は、それが後付けで関数を直接呼び出すことはできますか?または、別のAPIを使用してそれを行いますか?

答えて

1

私はPHPの人ではありません。私はあなたが何とかURLからそのメソッドを呼び出すことができれば可能かもしれないと思う(Googleはそれができると言います)。しかし、それはひどい練習です - あなたはあなたのPHP関数を呼び出すために任意のユーザーアクセスを与えるだろう。

とにかく、Retrofitアノテーションを使用すると、URLパスの変更、パラメータの追加、ボディの挿入などができますが、PHP関数を呼び出すことはできません。インタフェース関数の名前は全く意味を持ちません。それを正しい方法で行い、 "package/ctrl/Car/{id}"のようなエンドポイントを提供するか、通常のRESTful APIのようにPOSTリクエストを作成します。