开发与消费Web服务及办公耗材订购应用开发指南
立即解锁
发布时间: 2025-08-20 01:13:17 订阅数: 1 


C#面向对象编程与Web服务开发
### 开发与消费Web服务及办公耗材订购应用开发指南
#### 1. 消费ASP.NET Web API服务
当客户端应用程序调用ASP.NET Web API服务时,它需要发出HTTP请求并等待以POX或JSON文本流形式返回的响应数据。收到响应后,客户端解析文本文件并将数据加载到本地对象中进行处理。由于元数据不会随数据一起传递,Visual Studio无法自动为客户端生成代理对象。
以下是使用`HttpClient`类从Web服务请求书籍列表的示例代码:
```csharp
private HttpClient httpClient;
httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:49213/");
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var response = await httpClient.GetAsync("Activity14_2/books");
var bookJSON = await response.Content.ReadAsStringAsync();
var bookArray = JsonArray.Parse(bookJSON);
ObservableCollection<Book> bc = new ObservableCollection<Book>();
foreach (var b in bookArray)
{
Book bk = new Book();
bk.title_id = b.GetObject()["title_id"].GetString();
bk.title = b.GetObject()["title"].GetString();
bk.type = b.GetObject()["type"].GetString();
bc.Add(bk);
}
```
流程图如下:
```mermaid
graph TD;
A[创建HttpClient对象] --> B[设置基础地址];
B --> C[设置响应格式];
C --> D[发送异步请求];
D --> E[接收响应];
E --> F[解析响应文本];
F --> G[加载数据到本地对象];
```
从各种.NET客户端(WPF、ASP.NET和Windows应用商店应用)消费Web API服务的过程非常相似。以下是从Windows应用商店应用调用Web服务的步骤:
1. 启动Visual Studio并打开Activity14 - 2项目,向解决方案中添加一个名为`bookserviceClient`的新Windows应用商店空白应用。
2. 向`bookserviceClient`添加一个名为`Book`的新类,并添加以下属性:
```csharp
class Book
{
public string Title_id { get; set; }
public string Title { get; set; }
public string Type { get; set; }
public string Notes { get; set; }
}
```
3. 在设计器中打开`mainpage.xaml`文件,在`Grid`标签之间添加以下XAML标记以定义一个`GridView`来显示书籍数据集合:
```xml
<GridView Name="BooksView" ItemsSource="{Binding}" Margin="50,50,0,0">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel Width="300" Height="300" Margin="10" Background="#FF161C8F">
<TextBlock Margin="10,0" Text="{Binding Title_id}" />
<TextBlock Margin="10,0" Text="{Binding Title}" />
<TextBlock Margin="10,0" Text="{Binding Type}" />
<TextBlock Margin="10,0" Text="{Binding Notes}" TextWrapping="Wrap"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
```
4. 在代码编辑器窗口中打开`MainPage.xaml.cs`文件,在文件顶部添加以下`using`语句:
```csharp
using System.Net.Http;
using System.Net.Http.Headers;
using Windows.Data.Json;
using System.Collections.ObjectModel;
```
5. 向类中添加一个类级别的`HttpClient`变量,并使用以下代码更新类构造函数,将端口号替换为你的Web服务使用的端口号:
```csharp
private HttpClient httpClient;
public MainPage()
{
this.InitializeComponent();
httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:49213/");
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
}
```
6. 添加一个异步方法,该方法调用Web服务,解析结果并将其绑定到`GridView`:
```csharp
private async void GetBooks()
{
var response = await httpClient.GetAsync("Activity14_2/books");
if (response.IsSuccessStatusCode)
{
var bookJSON = await response.Content.ReadAsStringAsync();
var bookArray = JsonArray.Parse(bookJSON);
ObservableCollection<Book> bc = new ObservableCollection<Book>();
foreach (var b in bookArray)
{
Book bk = new Book();
bk.Title_id = b.GetObject()["title_id"].GetString();
bk.Title = b.GetObject()["title1"].GetString();
bk.Type = b.GetObject()["type"].GetString();
bk.Notes = b.GetObject()["notes"].Stringify();
bc.Add(bk);
}
this.BooksView.DataContext = bc;
}
}
```
7. 在`OnNavigatedTo`事件处理程序中调用`GetBooks`方法:
```csharp
protected override void OnNavigatedTo(NavigationEventArgs e)
{
GetBooks();
}
```
8. 构建解决方案。如果有任何错误,修复它们并重新构建。
9. 在解决方案资源管理器中,右键单击`Activity14_2`解决方案节点并选择“属性”。单击“启动项目”节点并选择“多个启动项目”。确保每个项目的操作都设置为“启动”。
10. 启动调试器,你应该会在`GridView`中看到书籍信息。
11. 测试完成后,按`Alt + F4`键关闭应用程序。在Visual Studio中停止调试器并退出。
#### 2. 办公耗材订购应用开发
##### 2.1 应用设计回顾
设计应用程序通常可以分为三个不同的阶段:
| 阶段 | 描述 |
| ---- | ---- |
| 概念设计 | 这是过程的发现阶段,涉及系统用户和系统设计师之间大量的协作与沟通。设计师必须全面了解拟议系统将涵盖的业务流程,使用场景和用例定义系统的功能需求。此阶段的结果是开发者和用户就系统功能和范围达成共识。 |
| 逻辑设计 | 在此阶段,你需要详细规划系统的结构和组织。包括开发和识别组成系统的业务对象和类,使用UML类图识别系统对象,记录其属性和行为,以及使用类图记录这些对象
0
0
复制全文
相关推荐







