inet,winsock求解中
问题出现在我需要发送的一个网页封包上,举例:该封包我截取的是: 00 03 6C 69 73 74 根据ASCII码翻译后4个是 list ,前2位 00 03 不是具体字符
问题1:以往我都使用 inet 控件发送封包,比如Inet1.Execute SendURL, "POST", Send, SendHeard 异步发送,都很顺利,但是以往只遇上发送如 6C 69 73 74 这种的完全可翻译的,就是直接发送 Send = "list" 就可以了,请问现在这种前面带有2个字符的如何翻译成字符串发送呢,inet 控件有办法直接发送字节数组吗?像winsock那样?我尝试过将以上截取的写入 BinBufff 字节数组后使用UTF8的函数转换,结果也是无法发送成功
问题2:将以上截取的写入 BinBufff 字节数组后可以直接使用 winsock 发送成功,问题又出现了。。winsock需要自己写 cookie,我根据 webbrowser1.Document.cookie 里取出的cookie 不带有一个网页带有的 JSESSIONID=XXXXXX 字段,我手动补充好 JSESSIONID 字段后,该封包可以成功发送, 请问 如何取得 JSESSIONID ..(百度GOOGLE无数无解中..) ,发现直接使用 inet控件发送的封包自动带有的 cookie 里带有 JSESSIONID字段,通过 webbrowser获取的cookie里为什么没带上该ID呢。。。有什么方法能获取吗
问题3:00 03 6C 69 73 74 00 84 如这封包..带有 84,ASCII里超过128的好像在VB都是空的,十六进制的84转成十进制就是 132, 这种情况下。。 inet 又如何翻译成字符串来发送呢?
写的有点乱不好意思哈,总的说就是。。只要能让我把这包包给发出去就好。。 inet或者winsock都行... 主要遇上的问题就是上面3点,请教各位大大们~ PS:GOOGLE百度一天了..哭.... --------------------编程问答-------------------- 估计是用 URL 转义符 %,后面跟两个 16 进制数:
00-03-6C-69-73-74 -> %00%03list --------------------编程问答-------------------- LS的,我说的是用INET控件发送的数据包呀,就是将16进制转换为INET控件可识别的字符串发送才行好像,问题就是某些16进制就是无法转换成字符串
不知是否还有人知道以上我提的问题的解决方法呢。。又找了一天了还是无果
或者,有方法能 截获程序本身webbrowser发送出去的数据包,或者INET发送出去的数据包吗?我想直接截获发出去的包(里面的cookie带有我所需要的JSESSIONID) --------------------编程问答-------------------- 下层发送/接收之负责收发数据,只要数据符合一定的要求(可见的Ascii字符+回车换行之类的控制字符)即可。
至于在有效字符之外的字符,就需要上层程序约定规则,发送前将无效字符进行编码、接收后进行解码,这样就能通过下层的发送/接收进行通讯了。
我上面提到的转义符 % 方式就是其中的一种适用于 URL 的约定规则。
具体要看你对方的上层了,它既然能处理带有 00 84 之类字符的数据,必定有相应的编码约定,比如 Base-64 之类的。
补充:VB , 网络编程