【发布时间】:2016-05-07 10:29:26
【问题描述】:
我是 UWP 平台开发的新手。
我正在为 Windows 10 移动版编写 UWP 应用。
我是这样下载的
public async Task<string> FetchAsync(string url)
{
string jsonString;
using (var httpClient = new System.Net.Http.HttpClient())
{
var stream = await httpClient.GetStreamAsync(url);
StreamReader reader = new StreamReader(stream);
jsonString = reader.ReadToEnd();
}
return jsonString;
}
像这样写入文件:
string url = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=82";
var json = await FetchAsync(url);
using (FileStream fs = new FileStream("cache1.txt", FileMode.Create))
{
json.Save(fs);
}
Debug.WriteLine(json);
完整代码:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using System.Xml;
using Windows.ApplicationModel.Calls;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace Murakami
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
string url = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=82";
var json = await FetchAsync(url);
using (FileStream fs = new FileStream("cache1.txt", FileMode.Create))
{
json.Save(fs);
}
Debug.WriteLine(json);
this.InitializeComponent();
XmlDocument doc = new XmlDocument();
XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("Order"));
el.SetAttribute("CallConfirm", "1");
el.SetAttribute("PayMethod", "");
el.SetAttribute("QtyPerson", "");
el.SetAttribute("Type", "1");
el.SetAttribute("PayStateID", "0");
el.SetAttribute("Remark", "{StreetName} , ..");
el.SetAttribute("RemarkMoney", "0");
el.SetAttribute("TimePlan", "");
el.SetAttribute("Brand", "1");
el.SetAttribute("DiscountPercent", "0");
el.SetAttribute("BonusAmount", "0");
el.SetAttribute("Department", "");
XmlElement el2 = (XmlElement)el.AppendChild(doc.CreateElement("Customer"));
el2.SetAttribute("Login", "");
el2.SetAttribute("FIO", "{FIO}");
XmlElement el3 = (XmlElement)el.AppendChild(doc.CreateElement("Address"));
el3.SetAttribute("CityName", "");
el3.SetAttribute("StationName", "");
el3.SetAttribute("StreetName", "{StreetName}");
el3.SetAttribute("House", "{HouseName}");
el3.SetAttribute("Corpus", "");
el3.SetAttribute("Building", "");
el3.SetAttribute("Flat", "{FlatName}");
el3.SetAttribute("Porch", "");
el3.SetAttribute("Floor", "");
el3.SetAttribute("DoorCode", "");
XmlElement el4 = (XmlElement)el.AppendChild(doc.CreateElement("Phone"));
el4.SetAttribute("Code", "{Code}");
el4.SetAttribute("Number", "{Phone}");
XmlElement el5 = (XmlElement)el.AppendChild(doc.CreateElement("Products"));
using (FileStream fs = new FileStream("test.xml", FileMode.Create))
{
doc.Save(fs);
}
Debug.WriteLine(doc);
}
async private void TwitterButton_Click(object sender, RoutedEventArgs e)
{
await Launcher.LaunchUriAsync(new Uri("https://twitter.com/murakami_rest"));
}
async private void FacebookButton_Click(object sender, RoutedEventArgs e)
{
await Launcher.LaunchUriAsync(new Uri("https://www.facebook.com/MURAKAMI.rest"));
}
async private void button9_Click_1(object sender, RoutedEventArgs e)
{
await Launcher.LaunchUriAsync(new Uri("https://vk.com/murakami_restaurant_delivery"));
}
async private void InstagramButton_Click(object sender, RoutedEventArgs e)
{
await Launcher.LaunchUriAsync(new Uri("https://instagram.com/murakami_in_ua/"));
}
private void PhoneCallButton_Click(object sender, RoutedEventArgs e)
{
PhoneCallManager.ShowPhoneCallUI("+380442308888","");
}
private void ProMurakamiButton_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(ProMurakami));
}
private void BludoDnyaButton_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(BludoDnya));
}
private void CartButton_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Cart2));
}
/* private void textBlock_SelectionChanged(object sender, RoutedEventArgs e)
{
PhoneCallManager.ShowPhoneCallUI("0213132131", "my name");
}*/
}
public async Task<string> FetchAsync(string url)
{
string jsonString;
using (var httpClient = new System.Net.Http.HttpClient())
{
var stream = await httpClient.GetStreamAsync(url);
StreamReader reader = new StreamReader(stream);
jsonString = reader.ReadToEnd();
}
return jsonString;
}
}
我有这些错误:
Error CS0116 A namespace cannot directly contain members such as fields or methods
Error CS0103 The name 'FetchAsync' does not exist in the current context Murakami
Error CS4033 The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task'.
我的代码错误在哪里?
非常感谢您的帮助!
【问题讨论】:
标签: c# .net json xaml win-universal-app