| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2418 人关注过本帖
标题:关于MSXML2.XMLHttp
只看楼主 加入收藏
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
结帖率:76.47%
收藏
已结贴  问题点数:20 回复次数:8 
关于MSXML2.XMLHttp
好久没来了,向大家问好!

刚才碰到个问题:
在网页中直接输入:我的订单123456,可以直接返回数据。
但是在代码中:
Http = CreateObject("MSXML2.XMLHttp")
Http.Open("Post","http://xxx.x.xx.xx/Open/testre?app=test&我的订单123456,.F.)
返回空值。
把网页中的url拷贝下来为:http://xxx.x.xx.xx/Open/testre?app=test&%E6%88%91%E7%9A%84%E8%AE%A2%E5%8D%95123456,
然后以此字符串查询则正常返回需要的信息了
Http = CreateObject("MSXML2.XMLHttp")
Http.Open("Post","http://xxx.x.xx.xx/Open/testre?app=test&%E6%88%91%E7%9A%84%E8%AE%A2%E5%8D%95123456,.F.)
求解?  谢谢!

[此贴子已经被作者于2019-12-27 10:02编辑过]

搜索更多相关主题的帖子: test Http app XMLHttp Open 
2019-12-27 10:01
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:7 
Http.Open("Post","http://xxx.x.xx.xx/Open/testre?app=test&我的订单123456,.F.) 少了个"?
Http.Open("Post","http://xxx.x.xx.xx/Open/testre?app=test&我的订单123456",.F.)

dBase有人接盘了。
2019-12-27 10:26
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
回复 2楼 xuminxz
这里漏写了,实际有
2019-12-27 10:41
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
解决了。

需要把其中的双字节字符转换为utf-8,再把utf-8转换为编码的 hexBinary,然后再每两个字符前加%。

不知有其他什么简单的办法?

[此贴子已经被作者于2019-12-27 12:31编辑过]

2019-12-27 12:30
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:7 
URL的汉字是要Encode的

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2019-12-28 16:32
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
最简单的方法,用木瓜的MYFLL
CTXT="我的订单123456"
Set Library To myfll
s = URLEncode(CTXT)
Set Library To

我感觉 你POST后面的网址不应该是直接就这样报文过去的吧,你再追踪一下。比如百度OCR我是这样的
oXml.open("post", "https://aip., .F.)
oXml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
oXml.send( s )
上面的S和ENCODER S 无关

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2019-12-28 16:42
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
回复 6楼 fown
使用myfll也需要把查询字符串转换为utf-8

ctext=STRCONV("我的订单123456",9)

Set Library To myfll
ctext = URLEncode(ctext)
Set Library To

Http = CreateObject("MSXML2.XMLHttp")

Http.Open("Post","http://xxx.xxx.xx.xx/test/test?app=hhh&text="+ctext,.F.)
Http.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")

Http.Send()
cfhxx = Http.ResponseText

***********以上查询成功*********


这样转换也可以:
ctext=STRCONV(STRCONV('我的订单',9),15)
bb=""
FOR aa = 1 TO LEN(ctext) STEP 2
     bb = bb+"%"+SUBSTR(ctext,aa,2)
ENDFOR
cbatch = bb+"123456"
2019-12-30 08:29
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
回楼上,我知道要转换,你不是问还有没有简单的方法吗?你忘记你的问题了?

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2019-12-30 14:21
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用fown在2019-12-30 14:21:03的发言:

回楼上,我知道要转换,你不是问还有没有简单的方法吗?你忘记你的问题了?



感谢回复!
2019-12-31 08:23
快速回复:关于MSXML2.XMLHttp
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017956 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved