idhttp.post 怎么添加分隔符?

kcgm_002 2010-06-21 06:24:37
1.用IE操作,抓包。看到上传内容(pvlog=%7Cgnuemv60956v%40onclick%7C201)


2.我原样IGHTTP.Post,却不成功,再抓发现我传的数据,竟是
pvlog=%257Cgnuemv60956v%2540onclick%257C201
比IE传的多了几个25奇怪

3.IE数据中的%7C,%40 应该是数据分隔符。
不知为什么POST程序会自己在分隔符%后加25??
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kcgm_002 2010-06-22
  • 打赏
  • 举报
回复
lght你好,就是用那类型但通不过呵

已经OK。
HTTPS,需要更换indy和SSL就解决了
结贴。




lght 2010-06-21
  • 打赏
  • 举报
回复
idhttp.CustomHeaders.Add('x-request: JSON');

%25是“%”,你是不是httpEncode过了,有的话去掉,没有的话先httpdecode
lght 2010-06-21
  • 打赏
  • 举报
回复
用TStringList.Add('pvlog=%7Cgnuemv60956v%40onclick%7C201');不会有这个问题
idhttp.post(url, stringlist);
kcgm_002 2010-06-21
  • 打赏
  • 举报
回复
抓包IE中有这2句
x-request: JSON
x-requested-with: XMLHttpRequest

在程序中IDHTTP应该怎么写这2属性??
kcgm_002 2010-06-21
  • 打赏
  • 举报
回复

lght你好
直接就用这句
Params.Add(pvlog=%7Cgnuemv60956v%40onclick%7C201);
它Post上去就变成 pvlog=%257Cgnuemv60956v%2540onclick%257C201

没有tpEncode,httpdecode,有可能不是这个问题,因为没中文
而且我试了下 Params.Add(pvlog=%);
它Post上去就变成 pvlog=%25
就一个字符它都会变

加了idhttp.CustomHeaders.Add('x-request: JSON');能用
但Post还是不成功。。


CaiBirdy你好
%7C,%40 是特定间隔符,那个&网站根本不认。
kcgm_002 2010-06-21
  • 打赏
  • 举报
回复
IdHTTP1.HTTPOtions:=[]; 无效
CaiBirdy 2010-06-21
  • 打赏
  • 举报
回复
直接用&简单多了

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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