社区
网络编程
帖子详情
HttpSendRequest调用之后要等半天 ,然后返回值还是0
toyix1234
2012-05-09 05:06:01
本来感觉写完登录后面就简单了,可以一个登录就是写不对 ,HttpSendRequest老是不成功,
是不是一个包,如果服务器返回的数据下面不使用,就不用模拟啊 ,
该式的 都测试了,还是不行 ,我好惨啊,
晚上再接着搞,看看能不能碰巧让我敲对代码
...全文
354
5
打赏
收藏
HttpSendRequest调用之后要等半天 ,然后返回值还是0
本来感觉写完登录后面就简单了,可以一个登录就是写不对 ,HttpSendRequest老是不成功, 是不是一个包,如果服务器返回的数据下面不使用,就不用模拟啊 , 该式的 都测试了,还是不行 ,我好惨啊, 晚上再接着搞,看看能不能碰巧让我敲对代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
toyix1234
2012-05-10
打赏
举报
回复
DWORD dwSize = 0;
hInet = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_DIRECT, NULL, INTERNET_INVALID_PORT_NUMBER, 0);
hConn = InternetConnect(hInet, Host, INTERNET_DEFAULT_HTTP_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0);
///////////////////////////////////////////////////////////
sprintf(Header, "%s%s\r\n"
"%s%s\r\n"
"%s%s\r\n"
//"%s%s\r\n"
"%s%s\r\n"
"%s%s\r\n",
"Accept:", "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*",
"Accept-Language:","zh-CN",
"User-Agent:",UserAgent,
//"Accept-Encoding:", "gzip, deflate",
"Host:","www.renren.com",
"Connection:","Keep-Alive"
);
hGETs = HttpOpenRequest(hConn, "GET", "",
"HTTP/1.1", NULL, 0, INTERNET_FLAG_RELOAD, 0);
bRequest = HttpSendRequest(hGETs, Header, strlen(Header), NULL, 0);
char szBuffer[10240];
DWORD dwByteRead = 0;
ZeroMemory(szBuffer, sizeof(szBuffer));
char* pAnsi = new char[10240];
while (InternetReadFile(hGETs, szBuffer, sizeof(szBuffer), &dwByteRead) && dwByteRead > 0)
{
szBuffer[dwByteRead] = '\0';
Utf8ToAnsi(szBuffer,pAnsi,10240);
}
char Cooike[1024];
ZeroMemory(Cooike, sizeof(Cooike));
InternetGetCookie("http://www.renren.com","","",&dwSize);
InternetGetCookie("http://www.renren.com","",Cooike,&dwSize);
InternetSetCookie("http://www.renren.com",NULL,Cooike);
/////////////////////////////////////////////////////////////////////
ZeroMemory(Header,sizeof(Header));
sprintf(Header, "%s%s\r\n"
"%s%s\r\n"
//"%s%s\r\n"
"%s%s\r\n"
"%s%s\r\n"
"%s%s\r\n"
// "%s%s\r\n"
"%s%s\r\n"
"%s%d\r\n"
"%s%s\r\n",
"Accept:", "*/*",
"Accept-Language:","zh-cn",
"User-Agent:",UserAgent,
//"Accept-Encoding:", "gzip, deflate",
"Host:","www.renren.com",
"Referer:","http://www.renren.com/",
// "Content-Type:","application/x-www-form-urlencoded; charset=UTF-8",
"Connection:","Keep-Alive",
"Content-Length:", 133,
"Cache-Control:", "no-cache"
);
MessageBox(Header);
hGETs = HttpOpenRequest(hConn, "POST", "/ajax/ShowCaptcha",
"HTTP/1.1", NULL, 0, INTERNET_FLAG_RELOAD, 0);
ZeroMemory(PostData, sizeof(PostData));
sprintf(PostData,"%s%s%s%s%s",
"email=","89770176@qq.com","&password=","ts1234567",
"&icode=&origURL=http://www.renren.com/home&domain=renren.com&key_id=1&_rtk=a17c1b07"//1b7a5de1
);
bRequest = HttpSendRequest(hGETs, Header, strlen(Header), PostData, strlen(PostData));
int aa = GetLastError();
ZeroMemory(szBuffer, sizeof(szBuffer));
ZeroMemory(pAnsi, 10240);
while (InternetReadFile(hGETs, szBuffer, sizeof(szBuffer), &dwByteRead) && dwByteRead > 0)
{
szBuffer[dwByteRead] = '\0';
Utf8ToAnsi(szBuffer,pAnsi,10240);
}
源码贴上了 ,不过有点乱,来回改了半天还是不行
jxiaoge
2012-05-09
打赏
举报
回复
代码改的太乱了 等我整理整理 刚才 int aa = GetLastError();看了一下 返回12002,竟然会超时。。。
hurryboylqs
2012-05-09
打赏
举报
回复
代码发出来看看不就知道了?
toyix1234
2012-05-09
打赏
举报
回复
我看网上有说 HttpSendRequest的第三个参数必须为多字节编码格式,否则服务器端会出错的。花了一天半的时间调试出来的结论。如果不进行转换,服务器端只会接收一半数据,后面的数据将会收不到。
但是我拦截正常网站的包,他也不是utf格式发出去的啊,
难道 我要把head和 提交的数据都转化成utf-8然后再发?
Http
Send
Request
(
Http
s)失败错误,c++代码执行失败,但是用IE打开成功
项目中发现一个问题,vc的代码使用
http
send
request
,在大部分的机器上都是成功的,但是在某些机器上发现返回错误。 最终发现是
http
s的服务器上的SSL 证书无效导致 解决方案,在InternetSetOption 中添加SECURITY_FLAG_IGNORE_REVOCATION参数, 或者在失败的机器上修改IE的设置 高级->安全->检查服务器证书是否已吊销* 去掉这个选项。 ...
Http
Send
Request
和
Http
头
Windows中有一组WinINet函数(
http
://msdn.microsoft.com/en-us/library/aa385473(v=VS.85).aspx),其中关于向Internet发送/接受请求的函数比较奇怪,尤其是
Http
Send
Request
函数问题更是诡异,下面是代码示例(该代码只是分析出问题,但没找到原因) 这组测试代码假设网络...
C++
调用
HTTP
实现方式
Http
访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,程序中使用POST方式, 提交数据并从服务器获取
返回值
。 为实现
Http
访问,微软提供了二套API:WinINet, Win
HTTP
。Win
HTTP
比WinINet更加安全和健壮,可以这么认为Win
HTTP
是WinINet的升级版本。 程序中,通过一个宏的设置来决定是使用Win
Http
还是Win
wininet InternetOpen\InternetOpenUrl\InternetReadFile 等
Microsoft 已经介绍了Microsoft Win32网络函数来协助开发者把网络变成他们的应用程序的整体部分。这些新的功能简化了使用FTP(文件传输协议)、和
HTTP
(超文本传输协议)访问网络。使用Win32网络函数的开发者不需要对TCP/IP或Windows 配件。 1.InternetOpen InternetOpen初始化WININET.DLL。它在其他的Win32网络函数之前被
调用
。 HINTERNET hNet = ::InternetOpen( "MSDN Sur...
C++
http
C++
调用
HTTP
实现方式
Http
访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,程序中使用POST方式,提交数据并从服务器获取
返回值
。 为实现
Http
访问,微软提供了二套API:WinINet, Win
HTTP
。Win
HTTP
比WinINet更加安全和健壮,可以这么认为Win
HTTP
是WinINet的升级版本。程序中,通过一个宏的设置来决定是使...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章