Vb.net TcpListener处理响应后变量
我们有一个基本的打印客户端,它使用Ajax监听从web发送的连接。发送了几个变量,例如Jquery上下文请求:Vb.net TcpListener处理响应后变量,vb.net,post,tcp,tcplistener,Vb.net,Post,Tcp,Tcplistener,我们有一个基本的打印客户端,它使用Ajax监听从web发送的连接。发送了几个变量,例如Jquery上下文请求: $.ajax({ url : 'http://127.0.0.1:13000', type : 'POST', data : { 'shipmentNumber': 'SAMPLESN998SSkLAIS', 'labelType': 'labelTypePostageEN
$.ajax({
url : 'http://127.0.0.1:13000',
type : 'POST',
data : {
'shipmentNumber': 'SAMPLESN998SSkLAIS',
'labelType': 'labelTypePostageEND',
'pdfLabel': 'pdfLabel__'
}
这被视为
POST/HTTP/1.1主机:127.0.0.1:13000连接:保持活动状态
内容长度:70621接受:/Origin:null用户代理:Mozilla/5.0
(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)
Chrome/59.0.3071.109 Safari/537.36内容类型:
application/x-www-form-urlencoded;字符集=UTF-8接受编码:
gzip,deflate,br接受语言:en-GB,en-US;q=0.8,en;q=0.6
shipmentNumber=SAMPLESN998SSkLAIS&labelType=labelTypeRoyalMailEND&pdfLabel=
我需要最终获得“labelType”、“shipmentNumber”和更多(注意,labelType/END是我搜索的字符串,如下所示,不是我想要的数据的一部分),作为变量使用,我不确定这样做的最佳方式。目前我有(简化):
正如您所看到的,我在响应中搜索我放在其中的“标记”或分隔符;感觉这将是不可靠的,应该有更好的方法。我有相关的,但他们没有,我不知道这些是否是正确的。这可能已经是最好的方法了,但不问我也不知道
你会用什么方法来做这件事
有更好的方法吗?使用
shipmentNumber=
作为键查找参数的开头。然后使用和分隔符将其拆分。然后使用=
分隔符循环通过每个将它们拆分为参数/值
data = System.Text.Encoding.ASCII.GetString(bytes, 0, 5000)
Dim dataStart As String = "shipmentNumber="
If data.Contains(dataStart) Then
data = data.Substring(data.IndexOf(dataStart)).Trim
Dim _params() As String = Split(data, "&")
For Each p In _params
Dim _values() As String = Split(p, "=")
If _values.Length > 0 Then
Dim _parameter As String = _values(0)
Dim _value As String = ""
If _values.Length > 1 Then
_value = _values(1)
End If
Debug.Print("parameter = " & _parameter)
Debug.Print("value = " & _value)
End If
Next
End If
data = System.Text.Encoding.ASCII.GetString(bytes, 0, 5000)
Dim dataStart As String = "shipmentNumber="
If data.Contains(dataStart) Then
data = data.Substring(data.IndexOf(dataStart)).Trim
Dim _params() As String = Split(data, "&")
For Each p In _params
Dim _values() As String = Split(p, "=")
If _values.Length > 0 Then
Dim _parameter As String = _values(0)
Dim _value As String = ""
If _values.Length > 1 Then
_value = _values(1)
End If
Debug.Print("parameter = " & _parameter)
Debug.Print("value = " & _value)
End If
Next
End If