WPF项目创建HTTP WEB服务,不使用IIS业务 WPF桌面程序WebApi WPF 集成WebApi C# 创建HTTP Web API服务

在C# WPF应用程序中直接创建HTTP服务或WebAPI服务有以下优点:

  1. 自托管服务:

    • 简化部署:无需依赖外部服务器或IIS(Internet Information Services),可以直接在应用程序内部启动和运行Web服务。

    • 集成紧密:与WPF应用程序的其他组件和逻辑可以更紧密地集成,因为它们都在同一个进程中运行。

    • 独立运行:应用程序可以在没有完整Web服务器环境的机器上运行,只需.NET运行时环境。

  2. WebAPI框架的优点:

    • RESTful架构:WebAPI基于REST(Representational State Transfer)原则设计,使得接口简洁、易于理解和使用。

    • 强类型支持:C#的强类型特性可以应用于API的请求和响应模型,提高代码的可读性和可靠性。

    • 易于测试:WebAPI设计鼓励模块化和松耦合,有利于单元测试和集成测试。

    • 扩展性:可以通过添加中间件和过滤器来扩展WebAPI的功能,如身份验证、日志记录等。

  3. 与UI交互:

    • 实时数据同步:由于WebAPI服务与UI在同一应用程序中,可以实现更直接、更快的数据同步和通信。

    • 更新通知:当服务端数据发生变化时,可以通过SignalR等技术实时通知客户端UI更新。

  4. 性能:

    在某些情况下,直接在本地进程中的HTTP通信可能比通过网络的通信更快,特别是对于大量小规模的请求。

  5.    例子源码

<Window x:Class="WapAPI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WapAPI"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="WebAPI服务" Height="300" Width="500" 
        Loaded="Window_Loaded">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="50"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Row="0">
            <Button Content="启动" Width="100" Background="Orange" Foreground="White"  Height="40" Click="Button_Click"/>
            <Button Content="停止" Width="100" Margin="20 0 0 0" Background="LightSkyBlue" Foreground="White"  Height="40" Click="Button_Click_1"/>
        </StackPanel>
        <Grid Grid.Row="1">
            <ListBox x:Name="listLog">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}" TextWrapping="Wrap"/>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Grid>
    </Grid>
</Window>

 

public WebApiModule()
        {

            //主页
            Get["/"] = _ =>
            {
                logger.Info("Received request: GET /");
                return "Hello World!";
            };

            //get接收参数
            Get["/api/{category}"] = parameters =>
            {
              return  "My category is " + parameters.category;
            };

            //post接收和发送json信息
            Post["/json"] = _ =>
            {
                Console.WriteLine(Request.Headers.Authorization); //Authorization

                // 接收JSON数据
                var json = this.Request.Body.AsString();
                Console.WriteLine(json);
                // 构建回复的JSON数据
                var responseJson = new { Message = "Hello, World!" };

                // 将响应转换为JSON字符串
                string jsonResponse = JsonConvert.SerializeObject(responseJson);

                // 返回JSON响应
                return Response.AsText(jsonResponse, "application/json");
            };

            //返回文件流
            Get["/api/file"] = parameters =>
            {
                //return Response.AsFile("C:\\config.ini");
                string localFilePath = @"E:\Important\资料.xlsx";
                FileStream fileStream = new System.IO.FileStream(localFilePath, FileMode.Open, FileAccess.Read);
                return new StreamResponse(() => fileStream, MimeTypes.GetMimeType("资料.xlsx"));
            };
            
        }

 

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WPF(Windows Presentation Foundation)是一种用于创建Windows应用程序的框架,它提供了丰富的图形性能和交互性能,使得开发人员可以轻松地构建现代化且具有吸引力的用户界面。WPF具有强大的UI设计和布局功能,能够自定义样式、主题和动画效果,使应用程序的用户界面更加吸引人。 WebAPI是一种用于构建Web服务的框架,它可以通过HTTP协议实现与客户端之间的通信。WebAPI基于REST原则,使用简洁的HTTP方法(如GET、POST、PUT、DELETE等)来执行各种操作。它能够返回各种格式的数据,如XML、JSON等,并支持身份验证和授权等常见的Web开发功能。 将WPFWebAPI结合使用可以实现丰富的客户端-服务应用程序WPF作为客户端应用程序的前端,负责呈现用户界面、处理用户交互和数据展示。WebAPI作为后端服务,负责处理客户端的请求,执行业务逻辑并提供数据。两者之间通过HTTP通信进行数据传输,可以实现实时数据更新和双向通信。 借助于WPF的强大的UI设计和交互性能,开发人员可以创建直观而灵活的用户界面,与WebAPI进行数据交互,并实现数据的展示和操作。通过WPF的数据绑定机制,可以轻松地将WebAPI返回的数据绑定到UI元素上,实现数据的实时更新和展示。 总之,WPFWebAPI相互结合能够实现流畅且响应迅速的客户端-服务应用程序WPF提供了强大的UI设计和交互性能,而WebAPI提供了灵活的后端服务,通过这种结合可以满足各种复杂的应用程序需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weijia3624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值