我正在尝试开发一个PS脚本,该脚本通过设备门户API将应用程序包安装到Hololens。在400 BAD REQUEST响应中查找一些故障排除提示。
以下是我使用的参考: https://docs.microsoft.com/en-us/windows/mixed-reality/device-portal-api-reference
END POINT /api/app/packagemanager/package (POST)
$user = 'snarain'
$pass = 'snarain'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
$FilePath = 'C:\Users\snarain\Downloads\My HololensApp.appxbundle'
Invoke-RestMethod -Uri 'http://127.0.0.1:10080/api/app/packagemanager/package?package=My%20HololensApp.appxbundle' -Headers $Headers -Method Post -InFile $FilePath -ContentType 'multipart/form-data'
输出为Invoke-RestMethod : The remote server returned an error: (400) Bad Request
。但是,我可以使用Postman达到终点并成功上传应用程序。我将来自POSTMAN的请求保存到与它相当的curl中,以便专家快速调试它。
--url 'http://127.0.0.1:10080/api/app/packagemanager/package?package=My%20HololensApp.appxbundle' \
--header 'Authorization: Basic c25hcmFpbjpzbmFyYWlu' \
--header 'Postman-Token: c6613653-3ff0-43c1-896c-63d62b125277' \
--header 'cache-control: no-cache' \
--header 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
--form '=@C:\Users\snarain\Downloads\My HololensApp.appxbundle'```
答案 0 :(得分:0)
jklemmack对此帖子的回答帮助解决了这个问题。另外,我应该使用ISO-8859-1编码而不是UTF-8来使appxbundle读取成功。
powershell invoke-restmethod multipart/form-data
解决了!