Files
Desktop_BLVStudio/BLV_Studio/Control/RoomControlSystemAPI.vb

90 lines
3.0 KiB
VB.net
Raw Normal View History

2025-12-11 10:06:44 +08:00
Imports System.IO
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Public Class RoomControlSystemAPI
Public Shared Function API_AllocationBarCode(roomNumber As String, hotelID As String) As APIRoomNode
Dim jsonString As String = String.Empty
Dim dic As New Dictionary(Of String String
dic.Add("roomNumber", roomNumber)
dic.Add("key", "blw_ws@2015")
dic.Add("hotelID", hotelID)
Try
jsonString = PostData("https://www.boonlive-rcu.com/api/GetHostByRoomNumber", $"jsonData={JsonConvert.SerializeObject(dic)}")
Catch ex As Exception
MsgBox($"网络API调用错误请联系管理员。")
Return Nothing
End Try
'Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As APIRoomNode = Nothing
Try
login = JsonConvert.DeserializeObject(Of APIRoomNode)(jsonString)
If login.IsSuccess.ToLower.Equals("true") Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
'MsgBox($"Json数据转换错误请联系管理员。详情 Json data to AllocationAPI error")
Return Nothing
End Try
End Function
Public Shared Function URLEncode(strInput As String) As String
Dim strOutput As String
Dim intAscii As Integer
Dim i As Integer
For i = 1 To Len(strInput)
intAscii = Asc(Mid(strInput, i, 1))
If ((intAscii < 58) And (intAscii > 47)) Or
((intAscii < 91) And (intAscii > 64)) Or
((intAscii < 123) And (intAscii > 96)) Then
strOutput = strOutput & Chr(intAscii)
Else
strOutput = strOutput &
IIf(intAscii < 16, "%0", "%") &
Trim$(Hex$(intAscii))
End If
Next
URLEncode = strOutput
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "POST"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
End Class
Public Class APIRoomNode
Public IsSuccess As String
Public Result As List(Of Dictionary(Of String, String))
End Class