API PHP RESTful для доступа к данным POST клиента Джерси

Я использую PHP RESTful API, который используется настольным Java-приложением с использованием jersey 2.21.

Обычно, когда я отправляю запрос POST от AngularJS, я могу получить доступ к данным через:

$data = json_decode(file_get_contents("php://input"));

Тем не менее, когда я использую майку, данные помещаются в $_POST массив. Вот мой код Джерси:

final HashMap<String, String> params = // some hashmap with a few entries
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
MultivaluedMap formData = new MultivaluedHashMap(params);

WebTarget target = client.target(url);


// Get JSON
String jsonResponse = target.request(MediaType.APPLICATION_JSON_TYPE).post(Entity.entity(formData, MediaType.APPLICATION_FORM_URLENCODED_TYPE), String.class);

return jsonResponse;

Как опубликовать данные с Джерси, чтобы я мог получить к ним доступ через вышеупомянутый вызов PHP?

Я знаю, что могу просто использовать $_POST массив, но мне нужно, чтобы этот API использовался из мобильного приложения, рабочего стола Java & приложение AngularJS.

заранее спасибо

0

Решение

Благодаря @jonstirling, я понял.

Я должен был установить тип контента как JSON. вот обновленный код:

ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);

WebTarget target = client.target(url);

String data = new Gson().toJson(params);

// POST JSON
Entity json = Entity.entity(data, MediaType.APPLICATION_JSON_TYPE);
Invocation.Builder builder = target.request(MediaType.APPLICATION_JSON_TYPE);
String jsonResponse = builder.post(json, String.class);

return jsonResponse;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]