Я пытаюсь настроить API, который генерирует PDF из веб-страницы (предоставляется в виде URL).API - это Готенберг из машины кодирования.У меня он есть в Docker, он работает просто отлично, я не могу сгенерировать PDF с помощью http-запроса, отправляемого с помощью curl (сейчас я просто пытаюсь заставить его работать, поэтому я использую запрос, приведенный в качестве примера в документации)
Теперь я пытаюсь заставить его работать с моим приложением groovy / grails.Поэтому я использую инструменты Java, чтобы сделать запрос.
Теперь вот моя проблема: полученный мной PDF-файл пуст (мое приложение открыто прямо в браузере).У него действительно правильный контент, если я открою его с помощью текстового редактора, он не будет пустым, и у него будет почти то же самое содержимое, которое я создаю с помощью запроса curl (который не пуст).
Я на 99% уверен, что проблема связана с кодировкой.Я попытался изменить параметр кодирования InputStreamReader, но он ничего не меняет.Здесь я поместил «X-MACROMAN», потому что кодировка внутри pdf-файла не пустая, но все равно не меняется.
Вот мой код:
static def execute(def apiURL)
{
def httpClient = HttpClients.createDefault()
// Request parameters and other properties.
def request = new HttpPost(apiURL)
MultipartEntityBuilder builder = MultipartEntityBuilder.create()
builder.addTextBody("remoteURL", 'https://google.com')
builder.addTextBody("marginTop", '0')
builder.addTextBody("marginBottom", '0')
builder.addTextBody("marginLeft", '0')
builder.addTextBody("marginRight", '0')
HttpEntity multipart = builder.build()
request.setEntity(multipart)
def response = httpClient.execute(request)
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent(), "X-MACROMAN"))
StringBuffer result = new StringBuffer()
String line = ""
Boolean a = Boolean.FALSE
while ((line = rd.readLine()) != null) {
if(!a){
a = Boolean.TRUE
}
else {
result.append("\n")
}
result.append(line)
}
return result
Я на 99% уверен, что проблема связана с кодировкой.Я попытался изменить параметр кодирования InputStreamReader, но он ничего не меняет.Здесь я поместил «X-MACROMAN», потому что кодировка внутри pdf-файла не пустая, но все равно не меняется.
Я ясно дал понять?А у тех, кто понимает, есть идеи, почему мои PDF-файлы пусты?