В одной из предыдущих статей я говорил о том, как использовать веб-API в Windows Phone. В этой статье я расскажу о том, как использовать веб-API из Windows Phone для сохранения, обновления и удаления.
Как и в предыдущей статье, в этой статье я также буду использовать JSON.NET
Давайте напишем код.
Шаг 1: Загрузите код из ASP.NET MVC 4 — Hello Web API или вы можете создать приложение Web API, следуя инструкциям.
Шаг 2: Добавьте приведенный ниже код в файл CustomerController.cs, который находится в папке «Контроллеры», загруженной с шага выше.
public Customer DeleteCustomer(Customer customer) { //Code to delete customer return new Customer { CustomerId = 100, CustomerName = "Hemant", Address = "Bangalore" }; } public Customer PostCustomer(Customer customer) { //Code to save or update customer return customer; }
Шаг 3. Загрузите JSON.NET из CodePlex.
Шаг 4: Распакуйте загруженный JSON.NET, перейдите в папку WindowsPhone. Вы получите Newtonsoft.Json.dll в папке.
Шаг 5: Создайте проект Silverlight для Windows Phone.
Шаг 6: Поместите два текстовых блока, два текстовых поля и две кнопки в MainPage.Xaml внутри панели содержимого. Одна кнопка для удаления и другая кнопка для сохранения или обновления.
<TextBlock Text="Name" Height="30" HorizontalAlignment="Left" Margin="10,100,0,0" Name="textDefault" VerticalAlignment="Top" FontSize="18" /> <TextBox InputScope="Default" Height="70" HorizontalAlignment="Left" Margin="120,90,0,0" Name="txtText" Text="" VerticalAlignment="Top" Width="320" /> <TextBlock Text="Address" Height="30" HorizontalAlignment="Left" Margin="10,175,0,0" Name="textEntropy" VerticalAlignment="Top" FontSize="18" /> <TextBox InputScope="Default" Height="70" HorizontalAlignment="Left" Margin="120,165,0,0" Name="txtEntropy" Text="" VerticalAlignment="Top" Width="320" /> <Button x:Name="btnSaveData" Grid.Row="0" Height="75" Content="Save Data" Click="btnSaveData_Click" /> <Button x:Name="btnDeleteData" Grid.Row="0" Margin="12,200,12,0" Height="75" Content="Delete Data" Click="btnDeleteData_Click" />
Шаг 7: Создайте Class Customer с сущностями, которые вы хотите связать. Веб-API Json будет иметь объекты CustomerId, CustomerName и Address
Имя объектов в классе Customer должно совпадать с именем объектов, возвращаемых Web API в Json.
public class Customer { public int CustomerId { get; set; } public string CustomerName { get; set; } public string Address { get; set; } }
Шаг 8: Добавьте ссылку на Newtonsoft.Json.dll из папки WindowsPhone и добавьте Newtonsoft.Json и System.Text, используя директиву.
using Newtonsoft.Json; using System.Text;
Шаг 9: Поместите метод btnDeleteData_Click в MainPge.Xaml.cs, который будет вызываться при нажатии кнопки «Удалить данные».
Мы использовали UploadStringAsync из WebClient. Тип содержимого заголовков WebClient должен быть установлен как «application / json», а Encoding как Encoding.UTF8
UploadStringAsync должен иметь «DELETE», который является методом HTTP.
void btnDeleteData_Click(object sender, RoutedEventArgs e) { try { Customer customer = new Customer(); customer.CustomerId = 1; string jsonData = JsonConvert.SerializeObject(customer); WebClient webClient = new WebClient(); Uri uri = new Uri("http://localhost:1712/api/customer/", UriKind.Absolute); webClient = new WebClient(); webClient.Headers["Content-type"] = "application/json"; webClient.Encoding = Encoding.UTF8; webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(webClient_UploadStringCompleted); webClient.UploadStringAsync(uri, "DELETE", jsonData); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Шаг 10: Поместите метод btnSaveData_Click в MainPge.Xaml.cs, который будет вызываться при нажатии кнопки «Сохранить данные».
void btnSaveData_Click(object sender, RoutedEventArgs e) { try { Customer customer = new Customer(); customer.CustomerId = 10; customer.CustomerName = txtName.Text; customer.Address = txtAddress.Text; string jsonData = JsonConvert.SerializeObject(customer); WebClient webClient = new WebClient(); webClient.Headers["Content-type"] = "application/json"; webClient.Encoding = Encoding.UTF8; Uri uri = new Uri("http://localhost:1712/api/customer/", UriKind.Absolute); webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(webClient_UploadStringCompleted); webClient.UploadStringAsync(uri, "POST", jsonData); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Шаг 11: Поместите ниже код, который будет запущен после завершения загрузки.
void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) { try { Customer customer = JsonConvert.DeserializeObject<Customer>(e.Result); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Шаг 12: Теперь запустите приложение Web API. Поместите URI Web API в URI приложения Windows Phone и запустите его.
На этом статья «Сохранить, обновить и удалить с помощью веб-API в Windows Phone» заканчивается.