Я использовал модификацию для связи моего приложения с php-сервером. Но я хочу напрямую вызвать функцию PHP OO.
Это мой класс 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 для этого?
Обратите внимание, что я не парень PHP. Я думаю, что это было бы возможно, если бы вы могли как-то вызвать этот метод из URL (Google говорит, что это можно сделать). Однако это ужасная практика — вы предоставляете любому пользователю доступ к своим функциям PHP.
В любом случае, с помощью аннотаций Retrofit вы можете изменить путь URL, добавить параметры, вставить тело и т. Д., Но вы не можете вызвать функцию PHP. Название интерфейсной функции не имеет никакого значения вообще. Сделайте это правильно и укажите конечную точку, например «package / ctrl / Car / {id}», или создайте запрос POST, как в обычном API RESTful.
Других решений пока нет …