Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net TcpListener处理响应后变量_Vb.net_Post_Tcp_Tcplistener - Fatal编程技术网

Vb.net TcpListener处理响应后变量

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监听从web发送的连接。发送了几个变量,例如Jquery上下文请求:

$.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