CInternetSession CHttpFile Post提交数据
//给指定url发请求, 返回请求后的结果
string CAutoPatchDlg::SendURLPost(string strServerName, string strFormActionUrl, string strPostStr)
{
CString strFormData(strPostStr.c_str()); // 需要提交的数据
CInternetsess sess("HttpClient"); //连结超时没效果的, 发送超时与接收超时有用, 连结超时可以用多线程WaitForSingleObject来实现
sess.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 5000); // 5000毫秒的连接超时
sess.SetOption(INTERNET_OPTION_SEND_TIMEOUT, 5000); // 5000毫秒的发送超时
sess.SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT, 5000); // 5000毫秒的接收超时
sess.SetOption(INTERNET_OPTION_DATA_SEND_TIMEOUT, 5000); // 5000毫秒的发送超时
sess.SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, 5000); // 5000毫秒的接收超时
sess.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 1); // 1次重试 CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); // 请求头
CHttpConnection *pConnection = sess.GetHttpConnection(strServerName.c_str());
CHttpFile *pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, strFormActionUrl.c_str()); CString strSentence, strGetSentence = "";
if(pFile)
{
BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
while(pFile->ReadString(strSentence)) // 读取提交数据后的返回结果
strGetSentence = strGetSentence + strSentence + char(13) + char(10);
pFile->Close();
delete pFile;
sess.Close();
return string(strGetSentence.GetBuffer());
}
return "";
}
string strResult = "";
string strServerName = "www.test.com";
string strFormActionUrl = "/index.php";
string strPostData = "username=" + strUserName + "&password=" + strPassword;
strResult = SendURLPost(strServerName, strFormActionUrl, strPostData);
这个方法有个缺陷, 网络不通SendRequest会等待几十秒, 感觉像卡死了似的.
CInternetSession CHttpFile Post提交数据的更多相关文章
- C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报
例1:C++使用POST方法向网页提交数据 转自:http://www.it165.net/pro/html/201208/3534.html 在C++中可以使用POST方法向网页中提交数据,这 ...
- from表单提交数据之后,后台对象接受不到值
如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...
- ASP模拟POST请求异步提交数据的方法
这篇文章主要介绍了ASP模拟POST请求异步提交数据的方法,本文使用MSXML2.SERVERXMLHTTP.3.0实现POST请求,需要的朋友可以参考下 有时需要获取远程网站的某些信息,而服务器又限 ...
- ScriptedSandbox64.exe 在写Winform程序Debug时不停提交数据
抓包时发现不停的在提交数据,导致抓包内容看不到. 取消方式:Tools -> Options -> Debugging -> General -> Enable Diagnos ...
- 【http】四种常见的 POST 提交数据方式
来源:http://www.cnblogs.com/aaronjs/p/4165049.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...
- JavaScript跨域提交数据
1.通过jsonp跨域 场景:假设前台有JS方法"crossJS", 1.1发送请求http://www.xxx.com/?callback=crossJS.(创建一个scr ...
- 提交数据url太长导致提交失败
使用了dojo开发.在datagrid过滤的时候.为了让过滤好处理,直接设置为完全二叉树的方式来存查询条件.但是在提交数据的时候,默认是get?url的方式.结果导致条件选择一两个,url会特别长.然 ...
- 利用ajax的方式来提交数据到后台数据库及交互功能
怎么样用ajax来提交数据到后台数据库,并完成交互呢????? 一.当我们在验证表单的时候,为了阻止把错误的也发送到服务器,我们通常这样设置: $(function(){ var ...
- 四种常见的 POST 提交数据方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
随机推荐
- [oracle] 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
Windows 64位下装Oracle 11g 64位,PLSQL Developer使用出现以下问题: 1.Database下拉框为空: 2.强制输入用户名.密码及Database,登录弹出: In ...
- 【linux】bash常用快捷键
Ctrl + r:逆向搜索命令历史 Ctrl + l:清屏 Ctrl + c:终止命令 Ctrl + u:删除光标前的指令 Ctrl + k:删除光标后的指令 Ctrl + d:退出登陆
- 【并发编程】AQS学习
一个简单的示例: package net.jcip.examples; import java.util.concurrent.locks.*; import net.jcip.annotations ...
- MySQL加载并执行SQL脚本文件
第一种方法: 命令行下(未连接数据库) ,输入 mysql -h localhost -u root -p123456 < C:\db.sql 第二种方法: 命令行下(已连接数据库,此时的提示符 ...
- android学习笔记29——Intent/IntentFilter
Intent/IntentFilter Intent封装android应用程序需要启动某个组件的“意图”,Intent还是应用程序组件之间通信的重要媒介. EG:Activity之间需要交换数据时,使 ...
- 6. redis持久化,认证
一. RDB 快照持久化 (默认) rdb机制,在满足redis.conf中配置的持久化策略后, 自动持久化数据, 默认存储在dump.rdb文件中 策略 : save 900 1 : 900秒内,一 ...
- iphone dev 入门实例3:Delete a Row from UITableView
How To Delete a Row from UITableView I hope you have a better understanding about Model-View-Control ...
- Linux客户端、服务器、窗口管理器的关系
嵌入式linux中文站发现很多LINUX初学者在学习linux图形方面的知识时会遇到一些概念,如:X.X11.Xfree86.WM.KDE.GNOME.QT.QT/E.Qtopia.DirectFB. ...
- 【JavaScript】JavaScript模拟Class
beauty("$Class",["$underscore"],function(_){ var Class = function () { var lengt ...
- php启动时候提示PHP startup的解决方法
最近在学习php,配置好php环境后,每次开机都有警告提示说 PHP startup.如下图: 显然这是个小问题,是关于php配置的. 解决这个问题很简单只需要在php.ini 文件中修改 exten ...