У меня такое же требование. Я просто хочу напечатать объект результата в формате JSON, поэтому я использую следующий код. Надеюсь, вы что-то нашли.
// Code of Conversion
$query = "SELECT * FROM products;";
$result = mysqli_query($conn , $query);
if ($result) {
echo "</br>"."Results Found";
// Conversion of result object into JSON format
$rows = array();
while($temp = mysqli_fetch_assoc($result)) {
$rows[] = $temp;
}
echo "</br>" . json_encode($rows);
} else {
echo "No Results Found";
}
Я предполагаю, что вызываемая вами служба использует TLS с аутентификацией клиента. В этом случае вам нужно будет указать Java хранилище ключей и хранилище доверенных сертификатов, которые будут использоваться для идентификации себя и проверки сервера соответственно.
Вы получаете ошибку unable to find valid certification path to requested target
, потому что Java не может проверить сертификат сервера (один из начальных этапов рукопожатия TLS).
По умолчанию для указания хранилища ключей и хранилища доверия используются соответствующие свойства, как указано на странице Настройка JSSE в справочном руководстве по Oracle JSSE. В частности:
javax.net.ssl.trustStore=/path/to/keystore.jks
javax.net.ssl.trustStorePassword=mypassword
javax.net.ssl.keyStore=/path/to/keystore.jks
javax.net.ssl.keyStorePassword=mypassword
Они могут быть указаны как системные свойства в командной строке (например, -Djavax.net.ssl.trustStorePassword=mypassword
) или (не рекомендуется) заданы программно, например:
System.setProperty("javax.net.ssl.trustStorePassword", "mypassword");
Наконец, обратите внимание, что тип хранилища ключей по умолчанию - JKS. Если вы хотите изменить значение по умолчанию на стандарт PKCS # 12 (расширения файлов обычно .p12
или .pfx
), то вам нужно установить два дополнительных свойства: javax.net.ssl.trustStoreType
и javax.net.ssl.keyStoreType
(необходимо значение быть PKCS12
).
Если вы не уверены, чтобы проверить, находится ли ваше хранилище ключей в JKS или PKCS # 12, вы можете использовать свойство keytool
, чтобы распечатать содержимое хранилища ключей и указать тип хранилища ключей, используя -storetype PKCS12
, или ничего. (по умолчанию JKS)