Невозможно получить запрос JSON POST в PHP

Я передаю объект JOSN из Java в PHP. Я использую сервер WAMP jdk 1.8 ang. Ниже приведен код Java.

import java.io.IOException; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.json.simple.JSONObject; /** * * @author PReeeT Dash */ public class FromJava { public static void main(String[] args) throws IOException { JSONObject json = new JSONObject(); json.put("someKey", "someValue"); CloseableHttpClient httpClient = HttpClientBuilder.create().build(); try { HttpPost request = new HttpPost("http://localhost/PGP/JSONReq/tophp.php"); StringEntity params = new StringEntity(json.toString()); request.addHeader("content-type", "application/json"); request.setEntity(params); httpClient.execute(request); // handle response here... } catch (Exception ex) { System.out.println("Error: Cannot Estabilish Connection"); } finally { httpClient.close(); } } } 

PHP-скрипт:

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

Когда я запускаю файл PHP, он всегда показывает пустую страницу. Может кто-нибудь, пожалуйста, помогите мне понять, почему это не работает.

Когда я запускаю следующий PHP-код, он всегда выполняет условие else.

 if ($_SERVER['REQUEST_METHOD'] == 'POST') { $data = json_decode(file_get_contents("php://input")); echo($data); } else { echo "XXXXXX"; } 

Я не думаю, что это сработает.

PHP-скрипт не «прослушивает», как WebService. Однако после получения запроса скрипт обрабатывает его и пытается «распечатать» результат в HTML, а не в Java.

Получить тело ответа, получаемого экземпляром org.apache.http.client, и, например, отправить его в System.out

 CloseableHttpResponse response = httpClient.execute(request); IOUtils.copy(response.getEntity().getContent(), System.out); 

Для IOUtils используйте import org.apache.commons.io.IOUtils; В случае, если вы используете maven, зависимость

 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> 

Вы, скорее всего, получите результат

 Catchable fatal error<: Object of class stdClass could not be converted to string 

потому что echo($data) не работает. json_decode (…) возвращает stdClass. Пытаться

 <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { // json_decode(..., true) will return an array instead of a stdClass $data = json_decode(file_get_contents("php://input"), true); var_export($data); } else { var_export($_SERVER['REQUEST_METHOD']); } 

вместо.