【发布时间】:2015-12-08 05:11:31
【问题描述】:
我正在使用 PHP RESTful API,该 API 由使用 jersey 2.21 的 Java 桌面应用程序使用。
通常,当我从 AngularJS 发送 POST 请求时,我可以通过以下方式访问数据:
$data = json_decode(file_get_contents("php://input"));
但是,当我使用 jersey 时,数据被放入 $_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;
如何从 Jersey 发布数据,以便我可以通过上述 PHP 调用访问它?
我知道我可以只使用$_POST 数组,但我需要在移动应用、Java 桌面和 AngularJS 应用中使用此 API。
提前致谢
【问题讨论】:
-
猜测提示。你的问题是
MediaType.APPLICATION_FORM_URLENCODED_TYPE。 -
嘿@JonStirling,我认为这与标题有关。现在想弄清楚如何设置 JSON 标头。
-
再次猜测(我不使用 java,更不用说 Jersey),但您可能在
MediaType.APPLICATION_JSON_TYPE之后,假设您实际上传递的是 JSON,这是您的 PHP 应用程序所期望的。 -
你说得对,我把它修好了。谢谢
标签: java php rest jersey jersey-2.0