Я использую API отчетов jasper server (rest_v2).Загрузите отчет Jasper с помощью библиотеки запросов Python
выполнено под api для создания отчетов и получения запросовID и exportID.
http://localhost:8080/jasperserver/rest_v2/reportExecutions
{
"status": "ready",
"totalPages": 0,
"requestId": "d0ae905c-1538-4e40-b5ad-c145f521707c",
"reportURI": "/reports/Invoices/COD",
"exports": [
{
"id": "49f47112-4698-4398-9ed8-a62d552a7aa5",
"status": "ready",
"outputResource": {
"contentType": "application/pdf",
"fileName": "COD.pdf",
"outputFinal": true
}
}
]
}
выше апи работает нормально (как вы можете видеть на выходе)
теперь я буду использовать ниже API, чтобы загрузить сгенерированный отчет.
В Почтальон я предусмотрел три заголовки
"Authorization": "Basic " + token
"Accept": "application/json",
"Content-Type": "application/xml"
и был в состоянии загрузить отчет.
Теперь я попытался сделать то же самое, используя библиотеку python-запросов. и ответ я получаю в API загрузки был
{
"message": "Resource d0ae95c-1538-4e40-b5ad-c145f521707c not found.",
"errorCode": "resource.not.found",
"parameters": [
"d0ae95c-1538-4e40-b5ad-c145f521707c"
]
}
ниже полный код
data = """
<reportExecutionRequest>
...
</reportExecutionRequest>
"""
url = "http://localhost:8080/jasperserver/rest_v2/reportExecutions"
headers = {
"Authorization": "Basic " + token,
"Accept": "application/json",
"Content-Type": "application/xml",
}
response = requests.post(url, data=data, headers=headers)
data = response.json()
request_id = data.get("requestId")
export_id = data.get("exports")[0].get("id")
# Till here working fine
report_url = "http://localhost:8080/jasperserver/rest_v2/reportExecutions/{request_id}/exports/{export_id}/outputResource".format(request_id=request_id, export_id=export_id)
headers = {
"Authorization": "Basic " + token,
"Accept": "application/json",
"Content-Type": "application/xml",
}
report_resp = requests.get(report_url, headers=headers)
print report_resp.json()
#{
# "message": "Resource d0ae95c-1538-4e40-b5ad-c145f521707c not found.",
# "errorCode": "resource.not.found",
# "parameters": [
# "d0ae95c-1538-4e40-b5ad-c145f521707c"
# ]
#}
PS: Вы можете быть уверены в маркере. Я тестировал в почтальоне, и он работает нормально.
Использовать сеанс, и файлы cookie будут сохранены –