VB.net Webbrowser Navigate Post的数据中有& 如何处理

sqqssia2 2009-08-21 03:57:47
Post的数据中有&如何处理
现在的代码
Public Function Postdata(ByVal url As String, ByVal postda() As String)
Dim post As String = ""
For Each s In postda
post += s + "&"
Next
post = post.Substring(0, post.Length - 1)
Dim bytearray() As Byte
Dim leng = utf8_without_bom.GetByteCount(post)
ReDim bytearray(leng - 1)
bytearray = utf8_without_bom.GetBytes(post)
Dim send As Object = bytearray
Dim vHeaders As Object
'vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13) + "pragma: no-cache" + Chr(10) + Chr(13) + "Cache-Control: no-store, must-revalidate" _
' + Chr(10) + Chr(13) + "expires: Wed, 26 Feb 1997 08:21:57 GMT" + Chr(10) + Chr(13) + "expires : 0" + Chr(10) + Chr(13) + "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)"
'Web_SendUsed.Navigate(url + "?reserveidforcache=" & postda(0) & postda(7), "_self", send, vHeaders)
vHeaders = "Content-Type: application/x-www-form-urlencoded"
Web_SendUsed.Navigate(url + "?reserveidforcache=" & postda(0) & postda(7), "_self", send, vHeaders)
End Function

如果这样写,那么数据中有&会出错。因为&是连接两个的字符。
问如何修改

一些变量的定义:
Public utf8_without_bom As System.Text.UTF8Encoding = New System.Text.UTF8Encoding(False)
Public RequestUrl As String
Public SendUrl As String
...全文
433 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqqssia2 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 iwome 的回复:]
那就自己想办法转义吧 用别的字符替换下不行么。

或者如果数据里面有 & 就过滤掉先。


[/Quote]
这是个办法,但有没有啥更完美的办法。另外有“+”也是一个问题,那个是空格
sqqssia2 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 iwome 的回复:]
那就自己想办法转义吧 用别的字符替换下不行么。

或者如果数据里面有 & 就过滤掉先。


[/Quote]
OK了,用%26替代
iwome 2009-08-24
  • 打赏
  • 举报
回复

那就自己想办法转义吧 用别的字符替换下不行么。

或者如果数据里面有 & 就过滤掉先。

sqqssia2 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sqqssia2 的回复:]

不是这个问题
我这个程序提交POST表单的时候。如果某个字段的植中有&,会把他当作连接两个字段的连字符。
[/Quote]

最终导致提交的表但内容不对
sqqssia2 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iwome 的回复:]
Web_SendUsed.Navigate(url + "?reserveidforcache=" & postda(0) & postda(7), "_self", send, vHeaders)

是调用这个出错的么?

你先试试把Navigate的参数直接组成一个字符串试试.感觉不该出错阿.
Web_SendUsed.Navigate("http://www.yoursite.com/query?name=yourname&pass=yourpass")
类似的字符串.然后看看是不是你拼的串有问题.


[/Quote]

不是这个问题
我这个程序提交POST表单的时候。如果某个字段的植中有&,会把他当作连接两个字段的连字符。
iwome 2009-08-21
  • 打赏
  • 举报
回复

Web_SendUsed.Navigate(url + "?reserveidforcache=" & postda(0) & postda(7), "_self", send, vHeaders)

是调用这个出错的么?

你先试试把Navigate的参数直接组成一个字符串试试.感觉不该出错阿.
Web_SendUsed.Navigate("http://www.yoursite.com/query?name=yourname&pass=yourpass")
类似的字符串.然后看看是不是你拼的串有问题.

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧