网站开发中的api指什么i,小游戏网页在线玩,学校网站建设和维护情况,免费网站源码博客【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 很多时候#xff0c;客户需要开发的不仅仅是一个上位机系统#xff0c;它还有其他很多配套的系统或设备#xff0c;比如物流小车、立库、数字孪…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 很多时候客户需要开发的不仅仅是一个上位机系统它还有其他很多配套的系统或设备比如物流小车、立库、数字孪生等一整套系统。这个时候上位机系统就需要和各个子系统进行数据交互访问。目前主要的数据访问有两种方式一种是基于数据库的访问方法另外一种就是基于WebApi的访问方式。如果是基于数据库的访问这相当于很多数据都暴露给了对方有时并不安全而如果是WebApi访问则在安全性上面容易控制得多。 目前假设客户提供了一堆WebApi给我们进行调试或者和我们约定好了WebApi接口那么应该怎么开发呢通常情况下我们是c# code和postman一起测试开发。postman是一个开发工具它可以模拟发送web请求。这个时候呢如果postman发送没有问题那么我们就要check一下自己的代码如果是postman都有问题那么就要和其他厂家沟通一下看看问题出在什么地方。这个时候postman就相当于是一个验证的工具可以帮助我们分析问题发生在自己这里还是在对方。 1、准备server.py 有的时候不同厂家约定好了接口但是对方未必开发完毕。所以这个时候为了测试我们就不用等待对方开发完毕利用python webpy框架写一个小的server.py代码也是可以的。
import web
import jsonurls (/, hello
)
app web.application(urls, globals())
class hello: def POST(self):data web.data()print datareturn json.dumps({result:ok})if __name__ __main__:app.run() 2、启动server.py 代码准备好了之后下面就可以准备server.py了。直接在shell下面输入如下命令即可其中8081代表着server的端口
python server.py 8081 3、准备c# wpf测试界面 和之前一篇文章一样这个c# wpf只要准备一个带有按钮的界面就可以了很简单
Window x:ClassWpfApp.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfAppmc:IgnorabledTitleHttpDemo Height450 Width800GridButton x:NameHttp ContentHttp ForegroundBlue ClickStart_Click HorizontalAlignmentLeft Margin300,195,0,0 VerticalAlignmentTop Width95 Height45/Button/Grid
/Window 查看界面效果的话就是这样的 4、添加c#代码 因为界面中只有一个按钮所以实现的部分主要也就是按钮的回调函数。在c# wpf中有一个类HttpClient它在System.Net.Http空间里面。我们可以利用这个类来实现http的数据访问。当然因为涉及到了json数据访问所以还需要安装一下Newtonsoft 安装好了之后就可以开始代码编写了。因为流程部分不太复杂所以建议大家直接看代码就可以了
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows;namespace WpfApp
{public partial class MainWindow : Window{private const string ApiUrl http://127.0.0.1:8081/;private const string UserName 123;private const string Password 456;private const string DataToSend 2023.12.29;public MainWindow(){InitializeComponent();}private async void Start_Click(object sender, RoutedEventArgs e){try{using (HttpClient httpClient new HttpClient()){var requestData new{name UserName,passwd Password,data DataToSend};string jsonContent Newtonsoft.Json.JsonConvert.SerializeObject(requestData);var content new StringContent(jsonContent, Encoding.UTF8, application/json);HttpResponseMessage response await httpClient.PostAsync(ApiUrl, content); if (response.IsSuccessStatusCode){string responseData await response.Content.ReadAsStringAsync();MessageBox.Show(API Response: responseData, Success);}else{MessageBox.Show(Error: response.StatusCode, Error);}}}catch (Exception ex){MessageBox.Show(Exception: ex.Message, Error);}}}
}5、测试和调试 界面和代码都ok之后就可以开始调试代码了。调试的时候分成两个部分第一查看按钮单击之后是不是有弹框弹出显示调用ok第二查看server.py处有没有数据打印。如果两者都没有什么问题那说明测试就ok了。不然就要回去查一查问题可能出在什么地方。不出意外的话单击按钮后界面效果应该是这样的 而server处的打印则应该是这样的 注 如果c# wpf和webpy不在同一台电脑上面主要需要解决一下跨域的问题注意下即可
class DataHandler:def GET(self):web.header(Access-Control-Allow-Origin, *)return Hello from WebPy GETdef POST(self):web.header(Access-Control-Allow-Origin, *)data web.data()return Hello from WebPy POST. Received data: data