mfc-关于MFC中SendRequest操作超时的函数

问题描述

关于MFC中SendRequest操作超时的函数

这个是我用HttpWatch抓到的的包,那个圈起来的字符粘到vc6中就成?了,怎么办?

 #include "AFXINET.H"

INT CLOGIN::GetFile(const CString strUrl)//,const CString strSavePath)
{
//  AfxMessageBox(strUrl);

    unsigned short nPort;       //用于保存目标HTTP服务端口
    CString strServer, strObject;//strServer用于保存服务器地址,strObject用于保存文件对象名称
    DWORD dwServiceType,dwRet; //dwServiceType用于保存服务类型,dwRet用于保存提交GET请求返回的状态号   

    //解析URL,获取信息
    if(!AfxParseURL(strUrl, dwServiceType, strServer, strObject, nPort))
    {
        //解析失败,该Url不正确
        return -1;
    }
    //创建网络连接对象,HTTP连接对象指针和用于该连接的HttpFile文件对象指针,注意delete
    CInternetSession intsess;
    CHttpFile *pHtFile = NULL; 

    //建立网络连接
    CHttpConnection *pHtCon = intsess.GetHttpConnection(strServer,nPort);//_T("120620223"),_T("1a993111a5"));
    if(pHtCon == NULL)
    {
        //建立网络连接失败
        intsess.Close();
        return -2;
    }  

    CString FormDataType = _T("Content-Type:application/x-www-form-urlencoded");
    //CString m_formdat = _T("action=login&login_username=120620223&login_password=1a993111a5");
    CString m_formdat = _T("RadioButtonList1=???&TextBox2=1a993111a &txtUserName=120620223");

    //发起GET请求
    pHtFile = pHtCon->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject);
    if(pHtFile == NULL)
    {
        //发起GET请求失败
        intsess.Close();
        delete pHtCon;
        pHtCon = NULL;
        return -3;
    }
    //提交请求头信息
    pHtFile->AddRequestHeaders(_T("POST /(gac14yvwcsjrzj45cx1fq4ed)/default2.aspx HTTP/1.1"));
    pHtFile->AddRequestHeaders(_T("Accept:text/html, application/xhtml+xml, */*"));
    pHtFile->AddRequestHeaders(_T("Accept-Encoding:gzip, deflate"));
    pHtFile->AddRequestHeaders(_T("Accept-Language:zh-CN"));
    pHtFile->AddRequestHeaders(_T("Cache-Control:no-cache"));
    pHtFile->AddRequestHeaders(_T("Connection:Keep-Alive"));
    pHtFile->AddRequestHeaders(_T("Content-Length:192"));
    pHtFile->AddRequestHeaders(_T("Content-Type:application/x-www-form-urlencoded"));
    pHtFile->AddRequestHeaders(_T("Cookie:safedog-flow-item=40A0DA8385864A8908D8E58047659734;"));

    pHtFile->AddRequestHeaders(_T("DNT:1"));
    pHtFile->AddRequestHeaders(_T("Host:202.200.144.63"));
    pHtFile->AddRequestHeaders(_T("Referer:http://202.200.144.63/(gac14yvwcsjrzj45cx1fq4ed)/default2.aspx"));

    pHtFile->AddRequestHeaders(_T("User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"));
    pHtFile->AddRequestHeaders(_T("ASP.NET_SessionId=hdlg1oi5wz1ibd3ot3omqhr3"));
    pHtFile->AddRequestHeaders(_T("X-HttpWatch-RID  74624-10032"));

    pHtFile->SendRequest(FormDataType,FormDataType.GetLength(),(LPVOID)(LPCTSTR)m_formdat,m_formdat.GetLength()); 

    //获取服务器返回的状态号
    pHtFile->QueryInfoStatusCode(dwRet);
    if (dwRet != HTTP_STATUS_OK)
    {
        //服务器不接受请求
        intsess.Close();
        delete pHtCon;
        pHtCon = NULL;
        delete pHtFile;
        pHtFile = NULL;
        return -4;
    }

解决方案

MFC关于窗口的有关操作

解决方案二:

数据可能不是字符串,编码格式。
网络超时,先检查网络连接,服务器访问等

解决方案三:

我调试运行了几次,异常都是从下边这句抛出的,然后就出现提示框“操作超时”

pHtFile->SendRequest(FormDataType,FormDataType.GetLength(),(LPVOID)(LPCTSTR)m_formdat,m_formdat.GetLength());
时间: 2024-10-06 20:20:53

mfc-关于MFC中SendRequest操作超时的函数的相关文章

在你的MFC应用程序中显示一个JPG文件

在VB中,我可以通过创建一个图像控件来显示一个JPG或GIF文件,但是我如何在我的MFC应用程序中显示一个JGP文件呢? 好问题!有时使用VB的程序员觉得这个很容易.只要往你的表中拖入一个图像控件,然后你就可以往下做了--然而C++程序员就不得不感到烦恼和头疼.那我们要做些什么呢,编写我们自己的JPG解压函数吗? 当然不是这样的!事实上,C/C++程序员能够使用与VB程序员所使用的非常类似(可以说是差不多)的图像控件.我并没有开玩笑.VB图像控件是基于一个叫"IPicture"的系统C

MFC框架程序中全屏显示特性的实现

在开发图像显示程序以及视频应用程序时,常常需要全屏显示特性,比如ACD See和豪杰解霸等应用都有全屏显示功能.本文将介绍如何在MFC框架程序中实现视图的全屏显示,也就是说将标题.菜单.工具栏.状态栏以及窗口的所有边框全部被隐藏,视图充满整个屏幕.并提供全屏显示与框架窗口之间的快捷切换操作. 大家知道,在MFC框架中并没有提供现成的类或者函数来实现全屏显示特性,至少我到目前为止是没有发现.但是要实现这个特性也并不难.其基本思路是调整主窗口的大小和位置,使视图的显示充满屏幕.它需要以屏幕左上角为原

VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异

VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异 一直用VC++6.0,对VS2005不太了解,下面简单的熟悉一下VS2005的一下功能,总结一下VS2005在编写MFC时候的应用. 1.    菜单项: 和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项.只是'属性',陈列的方式不同,VS2005陈列在右下角:在VC6.0中,我们对菜单项建立类向导,而在VS2005中,点右键,选择的是:'添加事件处理程序',然后再对话框里选择相应的消息类型,在类列表

mfc对话框-MFC中向导对话框中单选按钮的问题

问题描述 MFC中向导对话框中单选按钮的问题 我给单选按钮RADIO1建立类向导之后,BN_CLICKED函数里面应该怎么定义才能使单选按钮选择之后再次选择之后还是可以选择的,我现在的是点了单选按钮就不能再次点击了,,.另外怎么设置是只有选择单选按钮之后才能点击下一步?求解 解决方案 MFC单选按钮的分组问题MFC单选按钮MFC单选按钮 解决方案二: http://blog.csdn.net/zssureqh/article/details/7604018 解决方案三: 一个Group组中. 你

mfc操作-mfc ado数据库连接以及数据操作

问题描述 mfc ado数据库连接以及数据操作 ado 连接sql serve数据库 如何把数据读取出来显示到报表中啊? 每次总是连接数据库 总是出现无效指针错误 这个应该如何弄啊? 我是新手请教各位大神帮忙啊! 解决方案 连接数据库的字符串有问题.

mfc线程挂起唤醒操作问题

问题描述 mfc线程挂起唤醒操作问题 HANDLE hThread; CWnd *pWnd; UINT TextShow(LPVOID pParam) { CString szLine; //打开文件 CStdioFile file; file.Open(_T("E:1.txt"), CFile::modeRead); //逐行读取字符串 while (file.ReadString(szLine)) { pWnd->SetWindowText(szLine); hThread

MFC消息传递实现伪并发操作的问题

问题描述 MFC消息传递实现伪并发操作的问题 有关MFC定时器消息的伪并发操作,对于不同类型的消息,使用不同的函数处理,那么对于相同的消息,怎么进行处理呢? 解决方案 相同的消息就是由同一个消息处理函数来处理了. 解决方案二: 自动实现一个事件分发,需要处理事件时就添加处理器,就像web中的addEventListener一样

代码-【MFC,VS2013中使用Serialport类的问题???急】

问题描述 [MFC,VS2013中使用Serialport类的问题???急] 10C 上位机软件.1.在VC6.0中用SerialPort类,数据的传输完全没有问题.[我代码没有问题]2.使用串口精灵传输命令没有问题.[我机器没有问题]3.但是我现在将代码用在VS2013发送数据就完全没有反应.[同样的代码同样的机器用VS2013就有问题]VS2013中我把数据发送分为2个部分:①初始化串口+②发送数据命令.如果每次发送格式是:①初始化串口+②发送数据命令[没有问题]如果格式是:②发送数据命令[

如何从MFC应用程序中调用.NET框架

如何发送击键到其它应用程序? 关于如何通过编程来发送 Ctrl+Alt+Del 击键? 如何从 MFC 应用程序中调用 .NET 框架? 我想编写一个应用程序,它能通过击键将信息写到另外一个应用程序的窗体中.我是不是应该发送 WM_KEYDOWN 和 WM_KEYUP 消息?有没有更好的办法? 发送 WM_KEYDOWN 和 WM_KEYUP 消息也许能行得通,但 SendInput 是专门被设计用于此目的的 API 函数.它通过 INPUT 结构数组参数来合成包括击键和鼠标事件在内的输入,每个