廢話不說,直接上代碼
我是在控制臺里面測試的服務器功能,下面是功能類
public class TestHttpServer
{
HttpServer server;
public TestHttpServer()
{
server = new HttpServer();
server.RegisterHttpRpcApi(this.GetType()); // 注冊一個POST請求的API
server.Start(5000);
}
public void Close()
{
server?.Close();
}
[HslMqttApi(HttpMethod = "GET")]
public static int Calculate(int a, int b)
{
int x = a * 10 + b * 2;
return x; // 假設這個就是我們的核心的算法
//return 6666;
}
[HslMqttApi(HttpMethod = "POST")]
public static int Add(int a, int b)
{
return a + b;
}
/// <summary>
/// 打標機做HTTP服務器接口
/// </summary>
/// <param name="INV_ORG_ID"></param>
/// <param name="line_code"></param>
/// <param name="Upload_mode"></param>
/// <param name="create_time"></param>
/// <param name="barcode"></param>
/// <returns></returns>
[HslMqttApi(HttpMethod = "POST")]
public static ResultInfo accessElecBill(string INV_ORG_ID, string line_code, string Upload_mode, DateTime create_time, List<string> barcode)
{
/* 接受到的數(shù)據(jù) 存入表格顯示毒租,委托出去
string all = INV_ORG_ID + line_code + Upload_mode + create_time;
for (int i = 0; i < barcode.Count; i++)
{
all += barcode[i];
}
*/
ResultInfo resultInfo = new ResultInfo();
if (barcode == null)
{
resultInfo.code = "1";
resultInfo.msg = "條碼barcode==null";
resultInfo.errMsg = null;
resultInfo.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
resultInfo.data = null;
}
else
{
resultInfo.code = "0";
resultInfo.msg = "發(fā)送成功";
resultInfo.errMsg = null;
resultInfo.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
resultInfo.data = barcode.Count.ToString();
}
return resultInfo;
}
}
public class ResultInfo
{
/// <summary>
/// 默認0 成功痒谴,1 失敗
/// </summary>
public string code { get; set; }
/// <summary>
/// 調用成功信息或者錯誤信息
/// </summary>
public string msg { get; set; }
public string errMsg { get; set; }
/// <summary>
/// 返回時間
/// </summary>
public string timestamp { get; set; }
public string data { get; set; }
}
我看手冊里面都是在Program里面測試的衰伯,我怕不能在其他類里測試,所以就單獨寫了一個類調用积蔚,測試結果是正常意鲸,可以在其他類里面。
main函數(shù)里面代碼
internal class Program
{
static void Main(string[] args)
{
TestHttpServer testHttpServer = new TestHttpServer();
Console.WriteLine( "nihao");
Console.ReadLine();
}
}
業(yè)務接口
函數(shù)設計
使用POST 直接設計函數(shù)入?yún)⒕托芯”琱sl的http會自動把body的json 轉為對象類型怎顾。