В одной из предыдущих статей я говорил о том, как использовать веб-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» заканчивается.