2

Windows 10 IoT REST arabiriminin belgelerine göre, uygulamaları REST API aracılığıyla dağıtmak mümkündür.Windows 10 IoT - REST API dağıtımı

/API/appx/packagemanager/paket

Yüklemeler ve bir .appx dosyasını yükler.

HTTP fiil: POST

Parametreler

paketi: paketin Dosya adı yüklenecek.

Taşıma kapasitesi

çok parçalı uygun http gövde

nasıl doğru yük araya mı?

 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); 

kod Windows 10 IOT aygıtta çalışan: Yerel bir .appx paketi dağıtmak istiyorum, bu şekilde çalıştı.

sonrası eylem

  HttpResponseMessage response = await client.PostAsync(url, multipart); 

bana şu yanıtı

  {"Reason" : "Missing appx file name query parameter"} BadRequest 

Ben ek parametre/bilgilerle MultipartContent bir türü olmalıdır PostAsync çağrının İçeriğini tahmin verir. bunu nasıl çözeceğimize dair bir fikri olan?

cevap

0

Ben

System.Net.Http

ad alanında httpclient kullanmak zorunda, Prober DİNLENME çağrıları yapmak mümkün Windows 10 IoT API'sı.

Windows.Web.Http.HttpClient

içinde

HttpClient biraz farklı olduğu görülmektedir.

0

Tarayıcı (Chrome, IE) F12 modu - Geliştirici Araçları/Ağ - Tarayıcı kullanarak appx dosyasını yükleyin (minwinpc: 8080). POST'un nasıl göründüğünü görün. (Başlıkları, Yanıt .. vs.)