关于VC发送HTTP请求的问题,请高手帮忙,多谢

dreamingdan 2010-04-13 11:45:04
各位老大,小弟在通过VC发送http请求,请求地址:http://60.191.95.26:9899/default.aspx?cmd=test&cstr=460,000,571e000028e499,在IE上可以得到正确返回值,现在小弟想通过程序发送,但是在HttpSendRequest这里总返回错误,请高手给指点一下,谢谢

void GetHtml()
{
DWORD d;
DWORD dwBytesRead;
DWORD written;
HANDLE hFile;
CString ip;
CString port;
CString err;
CString header;
CString strLocal;
char pStrXML[100];
TCHAR szErrMsg[200];
TCHAR bufQuery[64];

const WCHAR hdrs[] = L"Content-Type: application/x-www-form-urlencoded";
CString url = L"http://60.191.95.26:9899/default.aspx?cmd=test&cstr=460,000,571e000028e499";

HINTERNET hOpen = InternetOpen( TEXT("Dopad"),//as user agent
PRE_CONFIG_INTERNET_ACCESS,
NULL,
INTERNET_INVALID_PORT_NUMBER,
0);

url = url.Mid(7);
int i = url.Find(L":",0);
ip = url.Left(i);
url = url.Mid(i+1);
i = url.Find(L"/",0);
port = url.Left(i);
url = url.Mid(i+1);

HINTERNET hConnect = InternetConnectW( hOpen,
ip,
(INTERNET_PORT)_wtoi(port),
NULL,
NULL,
INTERNET_SERVICE_HTTP,
0,
0);

HINTERNET hRequest = HttpOpenRequestW( hConnect,//InternetConnect()
TEXT("GET"),
url,
HTTP_VERSION,
NULL,
NULL,
INTERNET_FLAG_DONT_CACHE,
0);

sprintf(pStrXML,"cstr=460,000,571e000028e499");
header.Format(L"Content-Type: application/x-www-form-urlencoded\r\nContent-Length:%d",strlen(pStrXML));

BOOL bSendRequest = :: HttpSendRequestW(hRequest,hdrs,wcslen(hdrs),NULL,0);

if(!bSendRequest)
{
d=GetLastError();
err.Format(_T("%d"),d);
MessageBox(NULL,err,L"错误提示",MB_OK);
}

DWORD dwLengthBufQuery = sizeof(bufQuery);
BOOL bQuery = ::HttpQueryInfo(hRequest,HTTP_QUERY_CONTENT_LENGTH,bufQuery,&dwLengthBufQuery,NULL) ;
DWORD dwFileSize = (DWORD)_ttoi(bufQuery);

dwLengthBufQuery = sizeof(bufQuery);
bQuery = ::HttpQueryInfo(hRequest,HTTP_QUERY_LOCATION,bufQuery,&dwLengthBufQuery,NULL) ;
BYTE* buffer = new BYTE[dwFileSize+1] ;


BOOL bRead = ::InternetReadFile(hRequest,buffer,dwFileSize+1,&dwBytesRead);
if (bRead)
{
buffer[dwBytesRead] = 0;
}

hFile=CreateFile(L"1.txt",GENERIC_WRITE|GENERIC_READ,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
WriteFile(hFile,buffer,dwBytesRead,&written,NULL);
CloseHandle(hFile);
delete[] buffer;
}
...全文
439 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
imkjuu 2012-02-03
  • 打赏
  • 举报
回复
这里有一个功能强大的类,可以直接用。
http://download.csdn.net/detail/imkjuu/4021287
jamseyang 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 un1 的回复:]
InternetOpen之后直接InternetOpenUrl就行了,干嘛自己解析url这么麻烦。
[/Quote]
up
Un1 2010-04-26
  • 打赏
  • 举报
回复
InternetOpen之后直接InternetOpenUrl就行了,干嘛自己解析url这么麻烦。
pobomud 2010-04-15
  • 打赏
  • 举报
回复
我最近也遇到类似问题,建议你先抓包看发出去的数据是否正确,我怀疑你发出去的数据跟你要求的是不一样的,因为你在IE里面测试正确的,证明网站程序没问题。
heikefangxian9 2010-04-14
  • 打赏
  • 举报
回复
如果你试着成功了,记得在这里回复一声哦
heikefangxian9 2010-04-14
  • 打赏
  • 举报
回复
把你的header去掉,改成NULL,试试,你的content-length可能是不正确的
soswaidao 2010-04-13
  • 打赏
  • 举报
回复
soswaidao 友情帮顶~~~~友情帮顶~~~~
dreamingdan 2010-04-13
  • 打赏
  • 举报
回复
BOOL bSendRequest = :: HttpSendRequestW(hRequest,hdrs,wcslen(hdrs),NULL,0);

if(!bSendRequest)
{
d=GetLastError();
err.Format(_T("%d"),d);
MessageBox(NULL,err,L"错误提示",MB_OK);
}
这里返回12029了,我也不知道是什么错误,请高手帮帮忙
Eleven 2010-04-13
  • 打赏
  • 举报
回复
返回什么错误呢?
dreamingdan 2010-04-13
  • 打赏
  • 举报
回复
有人了解吗
内容概要:本文围绕城市场景下的无人机三维路径规划问题,提出了一种新颖的多目标粒子群优化算法(NMOPSO),旨在解决高维复杂环境中路径规划面临的多重挑战。研究聚焦于导航变量的多目标优化,构建了一个包含路径长度、飞行安全性、能量消耗等多个相互冲突目标的优化模型,并采用改进的粒子群算法进行高效搜索,最终获得一组Pareto最优解集,为实际决策提供多样化路径选择方案。该方法结合Matlab代码实现,详细阐述了算法的设计机制、数学建模流程及仿真验证过程,充分展示了其在密集城市建筑环境中有效规避障碍物、满足飞行动力学约束并实现多目标权衡的能力,具有较强的工程应用价值。; 适合人群:具备一定优化算法理论基础和Matlab编程能力,从事无人机路径规划、智能交通系统、自动化控制、人工智能应用等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市环境中的无人机物流配送、巡检监控、应急救援等实际任务的三维路径规划;②为高维、非线性、多约束的多目标优化问题提供有效的算法设计思路与改进参考;③通过Matlab仿真平台复现算法,进一步开展性能测试、参数调优与算法对比研究,推动相关领域的技术创新。; 阅读建议:此资源强调算法原理与工程实践的深度融合,建议读者重点研读目标函数的构建方式、约束条件的处理策略以及NMOPSO算法的核心改进机制,并务必动手运行和调试所提供的Matlab代码,以深入理解算法在三维空间路径优化中的具体实现细节与实际表现。

18,356

社区成员

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

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