Как закодировать [и] при отправке в качестве пост-запроса, используя Apache Commons httpclient в Java

Мой код

url = "https://www.payumoney.com/payment/payment/addPaymentSplit?merchantKey=test&merchantTransactionId=test&totalAmount=0&totalDiscount=0&jsonSplits=[{"amountToBeSettled":0,"aggregatorDiscount":0,"splitDetails":"test","CODAmount":0,"splitAmount":0,"merchantId":"0000","aggregatorCharges":0,"CODMode":0,"aggregatorSubTransactionId":"test","sellerDiscount":0}]"

CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(url);

Я получаю недопустимую ошибку символа во второй строке. Я попытался кодировать [в%5B и] в%5D. Все та же ошибка.

используя библиотеку apache-commons-httpclient.

1 ответ

Не изобретайте велосипед, используйте встроенный https://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.html:

"...&jsonSplits=" + URLEncoder.encode("[{...", "UTF-8");

Он переводит зарезервированные символы для вас.

Другие вопросы по тегам