【问题标题】:Error on PS script that installs app to Hololens using device portal APIs使用设备门户 API 将应用程序安装到 Hololens 的 PS 脚本出错
【发布时间】:2019-04-01 16:03:47
【问题描述】:

我正在尝试开发一个 PS 脚本,通过设备门户 API 将应用程序包安装到 Hololens。寻找有关 400 BAD REQUEST 响应的一些故障排除提示。

以下是我使用的参考资料: https://docs.microsoft.com/en-us/windows/mixed-reality/device-portal-api-reference

终点/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'```

【问题讨论】:

  • 您是否考虑过删除ContentType
  • 是的,它会抛出 Invoke-RestMethod : {"Reason" : "Missing .msix (or .emsix) or .appx (or .eappx) or .appinstaller file in uploaded files"}

标签: powershell hololens


【解决方案1】:

jklemmack 在这篇文章中的回答帮助解决了这个问题。此外,我应该使用 ISO-8859-1 编码而不是 UTF-8 来使 appxbundle 读取成功。

powershell invoke-restmethod multipart/form-data

解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多