MCPcopy
hub / github.com/urllib3/urllib3 / send_request

Function send_request

src/urllib3/contrib/emscripten/fetch.py:499–545  ·  view source on GitHub ↗
(request: EmscriptenRequest)

Source from the content-addressed store, hash-verified

497
498
499def send_request(request: EmscriptenRequest) -> EmscriptenResponse:
500 if has_jspi():
501 return send_jspi_request(request, False)
502 elif is_in_node():
503 raise _RequestError(
504 message=NODE_JSPI_ERROR,
505 request=request,
506 response=None,
507 )
508 try:
509 js_xhr = js.XMLHttpRequest.new()
510
511 if not is_in_browser_main_thread():
512 js_xhr.responseType = "arraybuffer"
513 if request.timeout:
514 js_xhr.timeout = int(request.timeout * 1000)
515 else:
516 js_xhr.overrideMimeType("text/plain; charset=ISO-8859-15")
517 if request.timeout:
518 # timeout isn't available on the main thread - show a warning in console
519 # if it is set
520 _show_timeout_warning()
521
522 js_xhr.open(request.method, request.url, False)
523 for name, value in request.headers.items():
524 if name.lower() not in HEADERS_TO_IGNORE:
525 js_xhr.setRequestHeader(name, value)
526
527 js_xhr.send(to_js(request.body))
528
529 headers = dict(Parser().parsestr(js_xhr.getAllResponseHeaders()))
530
531 if not is_in_browser_main_thread():
532 body = js_xhr.response.to_py().tobytes()
533 else:
534 body = js_xhr.response.encode("ISO-8859-15")
535 return EmscriptenResponse(
536 status_code=js_xhr.status, headers=headers, body=body, request=request
537 )
538 except JsException as err:
539 if err.name == "TimeoutError":
540 raise _TimeoutError(err.message, request=request)
541 elif err.name == "NetworkError":
542 raise _RequestError(err.message, request=request)
543 else:
544 # general http error
545 raise _RequestError(err.message, request=request)
546
547
548def send_jspi_request(

Callers 1

requestMethod · 0.70

Calls 11

has_jspiFunction · 0.85
send_jspi_requestFunction · 0.85
is_in_nodeFunction · 0.85
_RequestErrorClass · 0.85
_show_timeout_warningFunction · 0.85
EmscriptenResponseClass · 0.85
_TimeoutErrorClass · 0.85
newMethod · 0.80
itemsMethod · 0.80
sendMethod · 0.45

Tested by

no test coverage detected