根据Windows 10 IoT REST接口的文档,可以通过REST部署应用程序。
/api/appx/packagemanager/package 上载和安装.appx文件。 HTTP动词: POST 参数 软件包:要安装的包的文件名。 有效载荷 多部分协调http体
如何正确地组装有效载荷?我想部署一个本地.appx包,我尝试了这样做:
Windows.Storage.StorageFolder storageFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
byte[] filecontent = null;
string p = storageFolder.Path;
filecontent = File.ReadAllBytes(p + "\\TestAppDeploy_1.0.1.0_ARM.appx");
//URL + parameter Base64 encoding
string filenameb64 = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("TestAppDeploy_1.0.1.0_ARM.appx"));
string url = "http://localhost:8080/api/appx/packagemanager/package?package="+filenameb64;
HttpClient client = new HttpClient();
//authentication
var byteArray = Encoding.ASCII.GetBytes("Administrator:password");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var multipart = new MultipartContent();
ByteArrayContent byteArrayContent = new ByteArrayContent(filecontent);
multipart.Add(byteArrayContent);
HttpResponseMessage response = await client.PostAsync(url, multipart);
string res = await response.Content.ReadAsStringAsync();
var status = response.StatusCode;
client.Dispose();
Debug.WriteLine(res + " " + status);代码运行在Windows10 IoT设备上。
岗位行动
HttpResponseMessage response = await client.PostAsync(url, multipart);给我以下答复
{"Reason" : "Missing appx file name query parameter"} BadRequest我猜PostAsync调用的内容必须是具有附加参数/信息的MultipartContent类型。知道怎么解决这个问题吗?
发布于 2016-08-22 08:14:12
我必须使用HttpClient中的
System.Net.Http
命名空间,以便能够对Windows10WindowsAPI进行IoT REST调用。
中的HttpClient
Windows.Web.Http.HttpClient
似乎有点不同。
发布于 2016-04-20 16:46:49
浏览器(Chrome,IE)F12模式-开发者工具/网络-使用浏览器上传应用程序文件(minwinpc:8080)。看看那里的帖子是什么样子。(标题,响应..。等)
https://stackoverflow.com/questions/36284037
复制相似问题