Отправка base64 методом POST на веб сервер на Java?

278
10 декабря 2017, 11:21

Не получается отправить правильно base64 методом POST на вебсервер, где то читал что проблема в encoding или UTF-8, но не могу найти правильную информацию. (через Postman все работает) но в Java нет

Код на Java:

String base64encodedString = Base64.getEncoder().encodeToString(stringXml.getBytes());
        System.out.println(base64encodedString);
        // POST
        // METHOD-------------------------------------------------------------------------------
        String url = "http://192.168.1.9/udr/IhdMeta/services/ihd.asmx";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        // add reuqest header con.setRequestMethod("POST");
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        String urlParameters = "base64=" + base64encodedString + "&AlgId=" + MetaAlg.getString("id") + "&rec=SC"; // Send
                                                                                                                    // post
                                                                                                                    // request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();
        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + urlParameters);
        System.out.println("Response Code : " + responseCode);
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response2 = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response2.append(inputLine);
        }
        in.close();
        System.out.println(response2.toString());

результат:

Sending 'POST' request to URL : 
http://192.168.1.9/udr/IhdMeta/services/ihd.asmx
Response Code : 200
{"status":0,"message":"Недопустимая длина строки или массива знаков Base-64."}
READ ALSO
Как подключиться через прокси?

Как подключиться через прокси?

Стоит задача подключиться к сайту через proxyПрокси все в файле (HTTP/HTTPS)

201
Java распарсить данные сайта

Java распарсить данные сайта

Как получить данные со страницы сайта?

200
Выделение одной строки

Выделение одной строки

Доброго времени суток, пожалуйста напомните как сделать чтобы выделялась только одна строка в таблиценикак найти не могу

231