WebApiClientApp

master
nodyang@aliyun.com 2 months ago
parent a38777e37e
commit b43824ffa4

@ -1,4 +1,4 @@
using Nancy.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
@ -28,10 +28,10 @@ namespace SlnMesnac.RfidUpload.Common
/// <returns></returns>
public string ModeToJson(object Model)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
try
{
string str = serializer.Serialize(Model);
string str = JsonConvert.SerializeObject(Model);
return str;
}
catch (Exception)
@ -48,10 +48,10 @@ namespace SlnMesnac.RfidUpload.Common
/// <returns></returns>
public T JsonToMode<T>(string jsonStr)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
try
{
var info = serializer.Deserialize<T>(jsonStr);
var info = JsonConvert.DeserializeObject<T>(jsonStr);
return info;
}
catch (Exception)

@ -6,8 +6,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nancy" Version="2.0.0" />
<PackageReference Include="NewLife.Core" Version="11.1.2024.1206" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
</ItemGroup>
</Project>

@ -0,0 +1,91 @@
using SQLite;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq.Expressions;
using System.Text;
namespace SlnMesnac.RfidUpload.Common
{
/// <summary>
/// SQLite同步方法帮助类
/// 作者:追逐时光者
/// 创建时间2023年11月30日
/// </summary>
/// <typeparam name="T"></typeparam>
public class SqLiteHelper<T> where T : new()
{
private readonly string _databasePath = Path.Combine(Environment.CurrentDirectory, "db.db");
private readonly SQLiteConnection _connection; // SQLite连接对象
/// <summary>
/// 构造函数
/// </summary>
public SqLiteHelper()
{
// 创建SQLite连接对象并打开连接
_connection = new SQLiteConnection(_databasePath);
_connection.CreateTable<T>(); // 如果表不存在,则创建该表[不会创建重复的表]
}
/// <summary>
/// 数据插入
/// </summary>
/// <param name="item">要插入的数据项</param>
/// <returns></returns>
public int Insert(T item)
{
return _connection.Insert(item);
}
/// <summary>
/// 数据删除
/// </summary>
/// <param name="id">要删除的数据的主键ID</param>
/// <returns></returns>
public int Delete(int id)
{
return _connection.Delete<T>(id);
}
/// <summary>
/// 数据更新
/// </summary>
/// <param name="item">要更新的数据项</param>
/// <returns></returns>
public int Update(T item)
{
return _connection.Update(item);
}
/// <summary>
/// 根据条件查询记录
/// </summary>
/// <param name="predExpr">查询条件</param>
/// <returns></returns>
public List<T> Query(Expression<Func<T, bool>> predExpr)
{
return _connection.Table<T>().Where(predExpr).ToList();
}
/// <summary>
/// 查询所有数据
/// </summary>
/// <returns></returns>
public List<T> QueryAll()
{
return _connection.Table<T>().ToList();
}
/// <summary>
/// 根据条件查询单条记录
/// </summary>
/// <param name="predExpr">查询条件</param>
/// <returns></returns>
public T QuerySingle(Expression<Func<T, bool>> predExpr)
{
return _connection.Table<T>().Where(predExpr).FirstOrDefault();
}
}
}

@ -6,9 +6,11 @@ using SlnMesnac.RfidUpload.NLog;
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using NewLife.Http;
using TouchSocket.Core;
using TouchSocket.Rpc;
using TouchSocket.Sockets;
@ -34,43 +36,7 @@ namespace SlnMesnac.RfidUpload.TouchSocket
private JsonChange jsonChange = JsonChange.Instance;
private AppConfig appConfig = AppConfig.Instance;
private WebApiClientApp() { }
private WebApiClientSlim CreateWebApiClient(string url)
{
var client = new WebApiClientSlim(new System.Net.Http.HttpClient());
client.Setup(new TouchSocketConfig()
.SetRemoteIPHost(ExtractBaseURL(appConfig.localUrl))
.ConfigurePlugins(a =>
{
}));
return client;
}
/// <summary>
/// 例:
/// appConfig.localUrl =http://127.0.0.1:9090/api/uploadCsb
/// ExtractBaseURL(appConfig.localUrl)= http://127.0.0.1:9090
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
static string ExtractBaseURL(string url)
{
// 使用正则表达式匹配 http:// 或 https:// 开头的 URL 部分,直到第一个斜杠
string pattern = @"^(https?://[^/]+)";
Match match = Regex.Match(url, pattern);
if (match.Success)
{
return match.Value;
}
else
{
return null;
}
}
public string UploadAsync(int code,string paramStr)
{
string result = string.Empty;
@ -154,22 +120,26 @@ namespace SlnMesnac.RfidUpload.TouchSocket
return result;
}
public static string Post(string url, object postData)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/json";
req.Timeout = 5000;
if (req == null) return string.Empty;
private HttpClient client = new HttpClient();
byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(postData));
using (Stream reqStream = req.GetRequestStream())
reqStream.Write(data, 0, data.Length);
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
using (Stream stream = resp.GetResponseStream())
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
return reader.ReadToEnd();
public string Post(string url, object postData)
{
var res = client.PostJson(url,postData);
return res;
//HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//req.Method = "POST";
//req.ContentType = "application/json";
//req.Timeout = 5000;
//if (req == null) return string.Empty;
//byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(postData));
//using (Stream reqStream = req.GetRequestStream())
// reqStream.Write(data, 0, data.Length);
//using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
//using (Stream stream = resp.GetResponseStream())
//using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
// return reader.ReadToEnd();
}
}
}

@ -1,7 +1,6 @@

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Nancy.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SlnMesnac.RfidUpload.Business;

@ -1,9 +1,6 @@

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Nancy.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SlnMesnac.RfidUpload.Business;
using SlnMesnac.RfidUpload.Common;
using SlnMesnac.RfidUpload.Model;

@ -17,8 +17,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SlnMesnac.RfidUpload.NLog",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SlnMesnac.RfidUpload.UI", "SlnMesnac.RfidUpload.UI\SlnMesnac.RfidUpload.UI.csproj", "{600503B8-7174-4A34-A38F-F4CFFAA6764F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "slnmesnac.rfidupload.WebApplication", "slnmesnac.rfidupload.WebApplication\slnmesnac.rfidupload.WebApplication.csproj", "{76E1E241-C83D-4F79-8079-67CDD95E3D9E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "slnmesnac.rfidupload.Repository", "slnmesnac.rfidupload.Repository\slnmesnac.rfidupload.Repository.csproj", "{8F0C9BA1-495F-4D97-9B1D-CFC60701D2BE}"
EndProject
Global
@ -55,10 +53,6 @@ Global
{600503B8-7174-4A34-A38F-F4CFFAA6764F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{600503B8-7174-4A34-A38F-F4CFFAA6764F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{600503B8-7174-4A34-A38F-F4CFFAA6764F}.Release|Any CPU.Build.0 = Release|Any CPU
{76E1E241-C83D-4F79-8079-67CDD95E3D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76E1E241-C83D-4F79-8079-67CDD95E3D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76E1E241-C83D-4F79-8079-67CDD95E3D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76E1E241-C83D-4F79-8079-67CDD95E3D9E}.Release|Any CPU.Build.0 = Release|Any CPU
{8F0C9BA1-495F-4D97-9B1D-CFC60701D2BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F0C9BA1-495F-4D97-9B1D-CFC60701D2BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F0C9BA1-495F-4D97-9B1D-CFC60701D2BE}.Release|Any CPU.ActiveCfg = Release|Any CPU

Loading…
Cancel
Save