我开发了一个机器人来通过Python中的“API”抓取一些信息,现在我想将堆栈更改为Powershell。
我对其中一个请求有困难。在Python中,它的工作方式就像一个魅力,但在PowerShell上,我无法让它以同样的方式工作。
在Python中,我只创建有效负载
arrayWebCodes = ["PR1234", "PR3456"]
payloadStock={
"productsCN[]": arrayWebCodes ,
"productsCC[]": arrayWebCodes
}
response = s.post(urlStock, data=payloadStock)
字符串
这是因为我想在一个单一的呼叫中获得多个产品的信息。
当我尝试在PowerShell上实现相同的功能时,响应为空。
$arrayProducts = @("PR1234", "PR73456")
$payloadStock = [ordered]@{
"productsCN[]" = $arrayProducts
"productsCC[]" = $arrayProducts
}
$response = Invoke-WebRequest -Uri $urlStock -body $payloadStock -Method "POST" -WebSession $webSession
型
不知何故,Powershell的数组哈希表与我在这里尝试实现的Python数组字典有一些不同。
如果我在PowerShell中只使用一个代码实现请求,它就可以工作。如果我从:
$codProduct1 = "PR1234"
$codProduct2 = "PR3456"
$payloadStock = [ordered]@{
"productsCN[]" = $codProduct1, $codProduct2
"productsCC[]" = $codProduct1, $codProduct2
}
$response = Invoke-WebRequest -Uri $urlStock -body $payloadStock -Method "POST" -WebSession $webSession
型
致:
$codProduct1 = "PR1234"
$codProduct2 = "PR3456"
$payloadStock = [ordered]@{
"productsCN[]" = $codProduct1
"productsCC[]" = $codProduct1
}
$response = Invoke-WebRequest -Uri $urlStock -body $payloadStock -Method "POST" -WebSession $webSession
型
它的工作…
我就要辞职了,任何帮助都很感激。
1条答案
按热度按时间5fjcxozz1#
这不是你问题的答案,只是为了确定。
这应该是相同的:
Python
个字符
PowerShell
的字符串
我怀疑
Invoke-WebRequest -body
可能有与unexpectedConvertTo-Json
results? Answer: it has a default-Depth
of2
相同的-Depth
默认问题。如果将
-body
作为(json)字符串提供,会发生什么:型