Обслуживание HTML-страницы из функции Azure PowerShell
Я пытаюсь открыть страницу HTML из функции Azure PowerShell. Я могу вернуть HTML, но у меня есть подсказка, где я могу установить тип содержимого text / htm l, чтобы браузер интерпретировал HTML.
Вот пример из Anythony Chu, как вы можете сделать это в C#:
public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(@"d:\home\site\wwwroot\ShoppingList\index.html", FileMode.Open);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
Но в функции PowerShell я просто возвращаю файл, используя Out-File
командлет и не имеют возможности установить тип содержимого. Вот пример Привет, мир:
# POST method: $req
$requestBody = Get-Content $req -Raw | ConvertFrom-Json
$name = $requestBody.name
# GET method: each querystring parameter is its own variable
if ($req_query_name)
{
$name = $req_query_name
}
$html = @'
<html>
<header><title>This is title</title></header>
<body>
Hello world
</body>
</html>
'@
Out-File -Encoding Ascii -FilePath $res -inputObject $html
Вот как выглядит ответ в браузере:
Любая идея, как я могу установить тип содержимого, чтобы браузер интерпретировал HTML?
1 ответ
Решение
Вы можете вернуть объект Response со свойствами body
, headers
, status
а также isRaw
(необязательный):
$result = [string]::Format('{{ "status": 200, "body": "{0}", "headers": {{
"content-type": "text/html" }} }}', $html)
Out-File -Encoding Ascii $res -inputObject $result;