Я использую okhttp lib с Java и PHP. Мой Java-клиент выполняет следующий код.
public class Connection {
public static final MediaType JSON = MediaType
.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder().url(url).post(body).build();
Response response = client.newCall(request).execute();
return response.body().string();
}public static void main(String[] args) throws IOException {
Connection example = new Connection();
String json = "{'input':'test'}";
String response = example.post("http://localhost/android_api/index.php", json);
System.out.println(response);
}
}
На стороне сервера я пытаюсь декодировать строку JSON с помощью следующего кода, но мой веб-сервис просто возвращает NULL.
<?php
$rawData = file_get_contents("php://input");
$json = json_decode($rawData);
var_dump($json);
?>
Что я не так делаю?
Во-первых, вы вызываете http-запрос в главном потоке, что приведет к ошибке. Таким образом, вы используете AsyncTask
Других решений пока нет …