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
|
from urllib.parse import parse_qs
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
|
||||||
from frappe.utils import get_request_session
|
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(
|
response = frappe.flags.integration_request = s.request(
|
||||||
method, url, data=data, auth=auth, headers=headers, json=json, params=params
|
method, url, data=data, auth=auth, headers=headers, json=json, params=params
|
||||||
)
|
)
|
||||||
response.raise_for_status()
|
content_type = response.headers.get("content-type")
|
||||||
|
if content_type == "text/plain; charset=utf-8":
|
||||||
if response.headers.get("content-type") == "text/plain; charset=utf-8":
|
|
||||||
return parse_qs(response.text)
|
return parse_qs(response.text)
|
||||||
elif not response.text:
|
elif content_type.startswith("application/") and content_type.split(";")[0].endswith("json"):
|
||||||
return
|
return response.json()
|
||||||
|
elif response.text:
|
||||||
|
return response.text
|
||||||
else:
|
else:
|
||||||
response.json()
|
return
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
frappe.log_error()
|
frappe.log_error()
|
||||||
raise exc
|
raise exc
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue