Как отправить байтовый массив в HttpClient в java - PullRequest
0 голосов
/ 29 января 2020

Я недавно создал код, который отправляет mp3 как base64 в запросе http следующим образом:

public String sendPost(String json) {
    try {
        HttpPost request = new HttpPost(System.getenv("url"));
        StringEntity params;

        if (json.equalsIgnoreCase("")) {
            params = new StringEntity("{}");
        } else {
            params = new StringEntity(json);
    }

        request.addHeader(System.getenv("tokensource"), System.getenv("tokenvalue"));
        request.setEntity(params);

        HttpResponse httpResponse = client.execute(request);
        return EntityUtils.toString(httpResponse.getEntity());
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

Однако я обнаружил, что это не может отправлять большие файлы, поэтому я ищу вместо этого отправьте данные в виде байтового массива. Будет ли работать следующий код? Http еще не проходит, но это могут быть настройки на стороне сервера.

    public String sendPost(byte[] json) {
        try {
            HttpPost request = new HttpPost(System.getenv("url"));
             request.addHeader(System.getenv("tokensource"), System.getenv("tokenvalue"));
            request.setEntity(new ByteArrayEntity(json));
            HttpResponse httpResponse = client.execute(request);
            return EntityUtils.toString(httpResponse.getEntity());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
...