def _set_body( content: ContentType, data: dict, files: Any, json_body: Any, internal_request: _PipelineTransportHttpRequest, ) -> None: if data is not None and not isinstance(data, dict): content = data data = None if content is not None: _set_content_body(content, internal_request) elif json_body is not None: internal_request.set_json_body(json_body) _set_content_type_header("application/json", internal_request) elif files is not None: internal_request.set_formdata_body(files) # if you don't supply your content type, we'll create a boundary for you with multipart/form-data # boundary = binascii.hexlify(os.urandom(16)).decode( # "ascii" #) # got logic from httpx, thanks httpx! # _set_content_type_header("multipart/form-data; boundary={}".format(boundary), internal_request) elif data: _set_content_type_header("application/x-www-form-urlencoded", internal_request) internal_request.set_formdata_body(data) # need to set twice because Content-Type is being popped in set_formdata_body # don't want to risk changing pipeline.transport, so doing twice here _set_content_type_header("application/x-www-form-urlencoded", internal_request)
def test_request_json(self): request = HttpRequest("GET", "/") data = "Lots of dataaaa" request.set_json_body(data) self.assertEqual(request.data, json.dumps(data)) self.assertEqual(request.headers.get("Content-Length"), "17")
def test_request_json(): request = HttpRequest("GET", "/") data = "Lots of dataaaa" request.set_json_body(data) assert request.data == json.dumps(data) assert request.headers.get("Content-Length") == "17"
def update_key(self, name, version, key_ops=None, attributes=None, tags=None, **kwargs): # type: (str, str, Optional[List[str]], Mapping[str, str], Mapping[str, str], Any) -> Key url = "/".join([self.vault_url, "keys", name, version]) headers = {"Content-Type": "application/json; charset=utf-8", "x-ms-client-request-id": str(uuid.uuid1())} update_params = KeyUpdateParameters(key_ops=key_ops, key_attributes=attributes, tags=tags) body = self._serialize.body(update_params, "KeyUpdateParameters") request = HttpRequest("PATCH", url, headers=headers) request.set_json_body(body) request.format_parameters({"api-version": self.API_VERSION}) response = self._pipeline.run(request, **kwargs).http_response if response.status_code != 200: raise HttpResponseError("Request failed with code {}: '{}'".format(response.status_code, response.text())) key = self._deserialize("Key", response) return key