У меня есть сценарий PS, который отправляет запрос REST. для этой ситуации должен быть установлен запрос POST.
Проблема в том, что даже если мы заполняем его символами UTF8, такими как «ščřž», с другой стороны, он кодируется (% CA% DE и т. Д.), Даже в методе POST, который не должен его кодировать.
Я обнаружил, что parseQueryString
также должен принимать 2-й параметр - кодирование, но, предоставляя второй параметр, он выдает ошибку, которая не может найти перегрузку для функции с 2 параметрами.
Проще говоря - есть ли способ, как изменить этот кусок кода, чтобы заставить любую другую кодировку?
(декодирование на другой стороне, которая не в моих руках, на данный момент не вариант)
$pars = [system.web.HttpUtility]::parseQueryString([String]::Empty)
$param_map = $param_maps[$method][$module]
$param_map.keys | %{
if ($psBoundParameters.containsKey($_)) {
$pars[$param_map[$_]] = $psBoundParameters[$_]
}
}
$request = [system.UriBuilder]"http://XXX.XX.XX.XXX:8081/RestService/$http_resource"
$request.query = $pars.toString()
$uri = $request.uri
function contact-server {
try {
$response = invoke-webrequest -uri $uri -credential $credential -body @{x = 'x'} -method $http_method -useBasicParsing
###
}
catch{
###
}
}
заранее спасибо