Использование массива в заголовках в Invoke-RestMethod - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь использовать API REST Cosmos DB, используя метод Invoke-RestMethod. Мои заголовки, как показано ниже

  'Authorization' = $authToken
  'x-ms-date' =  $UTCTimeNow
  'x-ms-version' = '2017-02-22'
  'x-ms-documentdb-partitionkey' = @($partitonKey)
}

получен ответ - ключ раздела System.String [] недопустим. Похоже, Powershell не отправляет x-ms-documentdb-partitionkey в виде массива. Есть способ передать массив в заголовках в веб-запросе powershell

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Не уверен, что это сработает, но мне кажется, это должно сработать:

[array]$partitonKey = "test"
$headers = @{}
$headers.Add('x-ms-documentdb-partitionkey', $partitonKey)
$headers

Когда вы преобразуете вышеприведенное значение в JSON, вы получите:

{
    "x-ms-documentdb-partitionkey":  [
                                         "test"
                                     ]
}

Который является массивом внутри ключа "x-ms-documentdb-partitionkey".

Надеюсь, это поможет!

0 голосов
/ 11 марта 2020

Вы можете попробовать что-то вроде:

'x-ms-documentdb-partitionkey' = '[' + ($partitonKey) + ']'

Источник и более подробная информация: https://github.com/PlagueHO/CosmosDB/blob/e2da6d6d20c798fde0489bb0d751469f11b265fe/src/lib/documents/Format-CosmosDbDocumentPartitionKey.ps1

...