很奇怪的一个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系统就会正常返回
...全文
438 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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都可以搜索到好多份 我在想既然大家都在用为什么就我出问题??? 而且我也不是全部电脑出问题,只是部分电脑(目前就发现三台这样的) 我郁闷了

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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