很奇怪的一个http post问题,

没原来那个名字长了 2017-11-06 02:35:14

CString CHttpClient::doPost(CString href)
{
CString httpsource="";
CInternetSession session1;
CHttpConnection* conn1=NULL;
CHttpFile* pFile = NULL;
CString strServerName;
CString strObject;
INTERNET_PORT nPort;
DWORD dwServiceType;
AfxParseURL((LPCTSTR)href,dwServiceType, strServerName, strObject, nPort);
DWORD retcode;
char* outBuff = CONTENT.GetBuffer(1000);
try
{
conn1 = session1.GetHttpConnection(strServerName,nPort);
pFile = conn1->OpenRequest(0,strObject,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_AUTO_REDIRECT);
pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
pFile -> AddRequestHeaders("Accept: */*");
pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1); //=====同样的网络环境同样是win7x64位有的电脑运行正常 有的电脑运行到这句后出错继续不了 catch也没用直接内存异常
pFile -> QueryInfoStatusCode(retcode);
}
catch (CInternetException * e){};
if(pFile)
{
CString text;
for(int i=0;pFile->ReadString(text);i++)
{
//httpsource=httpsource+text+"/r/n";
httpsource=httpsource+text;
}
pFile->Close();
}else
{

}
return httpsource;
delete pFile;
delete conn1;
session1.Close();
}

这段是网上搜索来的post代码,原来一直用的很正常,今天发现有几台电脑(win7x64)死活就是出错
用od调试726F6C66 FF15 44888072 call dword ptr [<&WININET.HttpSendRequestA>] ; WININET.HttpSendRequestA
call进之后就报内存出错了,(这里是call进系统里F9然后内存c0000005)
同样的网络环境,另一台win7x64系统就会正常返回
...全文
403 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ckc 2017-11-06
SendRequest(NULL,0,outBuff,strlen(outBuff)+1); outBuff似乎是没有初始化,这里的strlen(outBuff)+1直接改成1001试下 另外这个1001是不是有点小?
  • 打赏
  • 举报
回复
chen_JADE 2017-11-06
outBuff 赋值有点问题吧。
  • 打赏
  • 举报
回复
解决了,原来是wsarecv被勾了 晕晕
  • 打赏
  • 举报
回复
oyljerry 2017-11-06
outBuff初始化一下清零等
  • 打赏
  • 举报
回复
zgl7903 2017-11-06
CONTENT 是什么编码类型? 是否是有效字符串? const char* outBuff = (LPCSTR)CStringA(CONTENT); ?
  • 打赏
  • 举报
回复
版主大大可否发点例子代码?
  • 打赏
  • 举报
回复
oyljerry 2017-11-06
引用 5 楼 free365 的回复:
OutputDebugString(outBuff);
buff没有问题,打印出来正常的 这个代码百度搜索vc post都可以搜索到好多份 我在想既然大家都在用为什么就我出问题??? 而且我也不是全部电脑出问题,只是部分电脑(目前就发现三台这样的) 我郁闷了
还可以用winhttp,这个API更好。
  • 打赏
  • 举报
回复
OutputDebugString(outBuff);
buff没有问题,打印出来正常的 这个代码百度搜索vc post都可以搜索到好多份 我在想既然大家都在用为什么就我出问题??? 而且我也不是全部电脑出问题,只是部分电脑(目前就发现三台这样的) 我郁闷了
  • 打赏
  • 举报
回复
相关推荐
发帖
网络编程
加入

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2017-11-06 02:35
社区公告
暂无公告