朋友们,我正在关注此link以实现从app内部检查更新。但是我没有实现它,我已经扩展了请求,我认为其内容存在问题。
问题是它无法获得更新版本。
var request = WebRequest.Create(url); // here i checked it on applying breakpoints
private Task<Version> GetUpdatedVersion()
{
var cultureInfoName = CultureInfo.CurrentUICulture.Name;
var url = string.Format("http://marketplaceedgeservice.windowsphone.com/v8/catalog/apps/{0}?os={1}&cc={2}&oc=&lang={3}",
GetManifestAttributeValue("ProductID"),
Environment.OSVersion.Version,
cultureInfoName.Substring(cultureInfoName.Length - 2).ToUpperInvariant(),
cultureInfoName);
var request = WebRequest.Create(url);
return Task.Factory.FromAsync(request.BeginGetResponse, result =>
{
var response = (HttpWebResponse)request.EndGetResponse(result);
if (response.StatusCode != HttpStatusCode.OK)
{
throw new WebException("Http Error: " + response.StatusCode);
}
using (var outputStream = response.GetResponseStream())
{
using (var reader = XmlReader.Create(outputStream))
{
reader.MoveToContent();
var aNamespace = reader.LookupNamespace("a");
reader.ReadToFollowing("entry", aNamespace);
reader.ReadToDescendant("version");
return new Version(reader.ReadElementContentAsString());
}
}
}, null);
}
答案 0 :(得分:2)
WebRequest的异构扩展中有一些构建,无需构建自己的。您可以直接使用WebResponse response= await request.GetResponseAsync();
关于真正的问题,我在调试屏幕截图和couldn't find any app coresponding to this app id中使用app id检查了商店,因此这个id可能是用于开发的应用ID,而不是商店中应用的真实应用ID,因为它工作它需要是真正的商店ID(当你真正将应用程序发布到商店它应该工作,因为商店将自动更新应用程序ID)。如果您还没有将应用程序发布到商店,那么测试最好的可能只是使用另一个应用程序的应用程序ID进行测试。
更新:
显然这是应用程序ID,这是问题。 (就像我说它需要是商店应用中已发布应用的应用ID而不是本地开发应用)