首页
社区
课程
招聘
[旧帖] 不显示删除回复显示所有回复显示星级回复显示得分回复 WinInet发送HTTP请求报文时查询字符串带汉字可能异常 0.00雪花
发表于: 2010-3-23 23:53 2896

[旧帖] 不显示删除回复显示所有回复显示星级回复显示得分回复 WinInet发送HTTP请求报文时查询字符串带汉字可能异常 0.00雪花

2010-3-23 23:53
2896
HINTERNET hInternet = InternetOpen("MyApp", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hConnection = InternetConnect(hInternet, "192.168.1.100", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET hRequest = HttpOpenRequest(hConnection, "GET", "/aaa/aaa.aspx?param=老师", "HTTP/1.1", NULL, NULL, INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_CACHE_WRITE, 0);
HttpSendRequest(hRequest, NULL, 0, NULL, 0);
DWORD dw;
char szData[10240];
InternetReadFile(hRequest, szData, 10240, &dw);
......
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnection);
InternetCloseHandle(hInternet);

上述代码向指定页面发送HTTP请求报文,查询字符串中带汉字。经多次试验,发现一个奇怪现象:如果这段代码是在exe文件中,一切正常,页面可以收到正确的汉字,但是如果这段代码是在dll中,则有时页面可以收到正确的汉字,而有时收到乱码字符(但乱码字符的长度并不等于2个汉字的长度,而是不定的)。进一步试验还表明不是页面代码的问题,因为抓包发现发送出去的时候已经是乱码了。请问这是什么原因?该怎样使用WinInet才能始终让页面收到正确的汉字?另外,上面的函数调用在贴上来时省略了差错检查的,不过运行中这些调用都成功的,而且InternetReadFile也能收到正确的应答报文。另外如果改成Winsock函数来实现上述功能,总是成功。但我需要使用WinInet。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//