我正在创建一个powershell脚本来从公共服务(我没有任何所有权)获取大量文件。我需要使用scroll api来获取所有需要的文件,但我遇到了一个问题:在提供scroll\u id时,elasticsearch使用postman和powershell的响应不同。
我在postman中手动重新创建了这些步骤,没有任何问题。
Function scrollBody ($scrollID) {
$scrollBody = @"
{
"scroll": "2m",
"scroll_id": "$scrollId"
}
"@
return $scrollBody
}
$body = (scrollBody `
-scrollID $scrollID
| ConvertFrom-Json)
$scrollUri = $ServerUri + "/_search/scroll"
$response = Invoke-WebRequest `
-Method GET `
-Uri $scrollUri `
-ContentType 'application/json' `
-Body $body `
| ConvertFrom-Json
我从代码的另一部分得到了工作滚动id,但是我已经用postman测试了id,它们工作得很好。
我怀疑这是我提供尸体的方式,但我被这个错误困住了:
{
"error": {
"root_cause": [
{
"type": "action_request_validation_exception",
"reason": "Validation Failed: 1: scrollId is missing;"
}
],
"type": "action_request_validation_exception",
"reason": "Validation Failed: 1: scrollId is missing;"
},
"status": 400
}
提前谢谢
1条答案
按热度按时间sz81bmfz1#
我无法进行测试,但在调用函数以生成具有scrollid的对象时,似乎出现了语法错误。
您只需将其添加到请求的散列中,就会更容易阅读。backticks有点反模式。