fix: only try JSON if content-type says so (#24936)
Keep NoneType as the fallback Signed-off-by: Akhil Narang <me@akhilnarang.dev>
This commit is contained in:
parent
ec8500ef09
commit
59ca074780
1 changed files with 7 additions and 7 deletions
|
|
@ -6,7 +6,6 @@ import json
|
|||
from urllib.parse import parse_qs
|
||||
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.utils import get_request_session
|
||||
|
||||
|
||||
|
|
@ -20,14 +19,15 @@ def make_request(method: str, url: str, auth=None, headers=None, data=None, json
|
|||
response = frappe.flags.integration_request = s.request(
|
||||
method, url, data=data, auth=auth, headers=headers, json=json, params=params
|
||||
)
|
||||
response.raise_for_status()
|
||||
|
||||
if response.headers.get("content-type") == "text/plain; charset=utf-8":
|
||||
content_type = response.headers.get("content-type")
|
||||
if content_type == "text/plain; charset=utf-8":
|
||||
return parse_qs(response.text)
|
||||
elif not response.text:
|
||||
return
|
||||
elif content_type.startswith("application/") and content_type.split(";")[0].endswith("json"):
|
||||
return response.json()
|
||||
elif response.text:
|
||||
return response.text
|
||||
else:
|
||||
response.json()
|
||||
return
|
||||
except Exception as exc:
|
||||
frappe.log_error()
|
||||
raise exc
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue