找回密码
 加入
搜索
查看: 1972|回复: 1

[网络通信] POST的内容中含有&和=字符,该如何转义?

[复制链接]
发表于 2016-1-25 20:23:05 | 显示全部楼层 |阅读模式
POST的内容中含有&和=字符,该如何转义?
因为&和=在post的正文中有特殊含义,比如我想把
"content=123454"
没有问题。
如果我想post 这个: "content=123454&sadqwf",就出问题了,因为WinHttp.WinHttpRequest.5.1会把字符串中的&识别成下一条索引,导致的结果就是,content索引的内容被&给截断了,只有&前面的部分发送出去了,后面的被丢弃了。
请问这种情况该怎么办?如何才能把&转义成普通符号
 楼主| 发表于 2016-1-25 20:49:17 | 显示全部楼层
自己解决了,但不知道有没有系统函数能直接解决这个问题。

原理是把post的正文编码成URL格式。
我是参考的这个帖子第4页,文白兄弟的回复:
Func _GoodDay_URLEncoder($lKeyword, $iCode = 1)
    Local $aKeyword = StringRegExp($lKeyword, '([\w\.\-\* ]+|[^\w\.\-\* ]+)', 3), $lRet = ''
    For $lKeyword In $aKeyword
        If StringRegExp($lKeyword, '^[^\w\.\-\* ]+$') Then
            $lRet &= StringRegExpReplace(StringTrimLeft(StringToBinary($lKeyword, $iCode), 2), '(.{2})', '%$1')
        Else
            $lRet &= StringReplace($lKeyword, ' ', '+')
        EndIf
    Next

    Return $lRet

EndFunc
用这个函数把post正文编码一下就好了。为什么这样能行?我也不知道,反正就是能行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 13:00 , Processed in 0.073820 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表