我正在尝试建立一个从网页(提供为URL)生成PDF的API。该API来自编码机。我在Docker上安装了它,它工作得很好,我无法通过带有curl的http请求发送生成PDF(目前,我只是想使其工作,所以我使用文档中提供的请求作为示例)>
现在,我正在尝试使其与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为何空白没有任何想法吗?