500分求实例代码可为一文件添加一个http头,向一URL发送此文件请求,同时可以接收回送回来的响应文件(高分回报) 500分求实例代码可为一文件添加一个http头,向一URL发送此文件请求,同时可以接收回送回来的响应文件(高分回报) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也给我一个[email protected]谢谢 [email protected]偶也很渴望,先谢谢了! 我也要谢谢拉[email protected] To maofeiqiao():给你发过去了,希望对你有用 你是要把一个文件通过http上传, 还是仅仅接受一个http文件(响应)? 也给俺一个吧,也可以给分的[email protected] 我是将一个XML格式的文件加上一个http的头构成一个请求文件,向一URL发送此请求,些URL将返回我一个响应文件(此文件也是XML格式加上一个HTTP头),我接收此响应文件后,要将此头去掉,只要XML格式的文件内容 姑且不考虑你要传送的是什么格式的文件(其实什么格式都是一样的),在发送时只是在这个文件前加一个头,所以你看一下我给你发的browser,里面是使用字符串来处理向文件加HTTP头的 [email protected]我一份,谢谢啊:) 客户端向服务器端发出一个 POST,内容为一段xml服务器端收到后返回正文为xml 这个不难, 但是为什么这样做? 觉得有点别扭.不用你去包装, (难道你想用socket来做?). 直接用mfc的WinInet去做.到这儿去看看吧. 应该有你要的. http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=903 to lengnuan(冷暖):因我和服务器那方规定我必须这样做 我想从那里得到我想要的服务必须得按照他的协议和规定 CInternetSession MySession; CHttpConnection* pServer = NULL; CHttpFile* pFile = NULL; LPCSTR pServerName="211.139.140.151"; INTERNET_PORT nPort=10034; LPCSTR pstrObjectName="req.xml"; LPCSTR pstrRefer="G:/mfq/myproject/write/PosSystem/"; CString str="POST/newRequest HTTP/1.0"; str+="\r\n"; str+="Content_Type:text/xml"; str+="\r\n"; str+="Content_Length:186"; LPCSTR pstrHeaders=str+"\r\n"; try { pServer=MySession.GetHttpConnection(pServerName,nPort); pFile=pServer->OpenRequest(1,pstrObjectName,pstrRefer,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT); pFile->AddRequestHeaders(pstrHeaders,HTTP_ADDREQ_FLAG_REPLACE); //?????????? pFile->SendRequest(); DWORD dwRet; pFile->QueryInfoStatusCode(dwRet); if( dwRet>=400 && dwRet<=499 ) { AfxMessageBox(_T("出现请求错误"),MB_ICONEXCLAMATION); return; } else if( dwRet>=500 &&dwRet<=599 ) { AfxMessageBox(_T("服务器错误"),MB_ICONEXCLAMATION); return; } CString *Buf=NULL; pFile->Read(Buf,pFile->GetLength()); pFile->Close(); pServer->Close(); } catch (CInternetException* pEx) { TCHAR szErr[1024]; pEx->GetErrorMessage(szErr, 1024); MessageBox(szErr,_T("错误")); pEx->Delete(); } if (pFile != NULL) delete pFile; if (pServer != NULL) delete pServer; MySession.Close();为什么出现请求错误提示,我在调试中在//??????????标记处添加代码读出pFile的内容为空? 对于服务器的请求,很简单:GET或者POST如果是POST文件,需要定义数据类型服务器响应头标结构如下,在结构后面发送数据就可以了:sprintf(buf,"HTTP/1.0 %s\r\nContent-Length: %d\r\nContent-Type: %s\r\nDate: %s\r\nServer: %s\r\n\r\n",szStatusCode,iSize, szDataType,szDT, SERVERNAME);常用nContent-Type如下: // Init MIME Types // MimeTypes["doc"] = "application/msword"; MimeTypes["bin"] = "application/octet-stream"; MimeTypes["dll"] = "application/octet-stream"; MimeTypes["exe"] = "application/octet-stream"; MimeTypes["pdf"] = "application/pdf"; MimeTypes["p7c"] = "application/pkcs7-mime"; MimeTypes["ai"] = "application/postscript"; MimeTypes["eps"] = "application/postscript"; MimeTypes["ps"] = "application/postscript"; MimeTypes["rtf"] = "application/rtf"; MimeTypes["fdf"] = "application/vnd.fdf"; MimeTypes["arj"] = "application/x-arj"; MimeTypes["gz"] = "application/x-gzip"; MimeTypes["class"] = "application/x-java-class"; MimeTypes["js"] = "application/x-javascript"; MimeTypes["lzh"] = "application/x-lzh"; MimeTypes["lnk"] = "application/x-ms-shortcut"; MimeTypes["tar"] = "application/x-tar"; MimeTypes["hlp"] = "application/x-winhelp"; MimeTypes["cert"] = "application/x-x509-ca-cert"; MimeTypes["zip"] = "application/zip"; MimeTypes["cab"] = "application/x-compressed"; MimeTypes["arj"] = "application/x-compressed"; MimeTypes["aif"] = "audio/aiff"; MimeTypes["aifc"] = "audio/aiff"; MimeTypes["aiff"] = "audio/aiff"; MimeTypes["au"] = "audio/basic"; MimeTypes["snd"] = "audio/basic"; MimeTypes["mid"] = "audio/midi"; MimeTypes["rmi"] = "audio/midi"; MimeTypes["mp3"] = "audio/mpeg"; MimeTypes["vox"] = "audio/voxware"; MimeTypes["wav"] = "audio/wav"; MimeTypes["ra"] = "audio/x-pn-realaudio"; MimeTypes["ram"] = "audio/x-pn-realaudio"; MimeTypes["bmp"] = "image/bmp"; MimeTypes["gif"] = "image/gif"; MimeTypes["jpeg"] = "image/jpeg"; MimeTypes["jpg"] = "image/jpeg"; MimeTypes["tif"] = "image/tiff"; MimeTypes["tiff"] = "image/tiff"; MimeTypes["xbm"] = "image/xbm"; MimeTypes["wrl"] = "model/vrml"; MimeTypes["htm"] = "text/html"; MimeTypes["html"] = "text/html"; MimeTypes["c"] = "text/plain"; MimeTypes["cpp"] = "text/plain"; MimeTypes["def"] = "text/plain"; MimeTypes["h"] = "text/plain"; MimeTypes["txt"] = "text/plain"; MimeTypes["rtx"] = "text/richtext"; MimeTypes["rtf"] = "text/richtext"; MimeTypes["java"] = "text/x-java-source"; MimeTypes["css"] = "text/css"; MimeTypes["mpeg"] = "video/mpeg"; MimeTypes["mpg"] = "video/mpeg"; MimeTypes["mpe"] = "video/mpeg"; MimeTypes["avi"] = "video/msvideo"; MimeTypes["mov"] = "video/quicktime"; MimeTypes["qt"] = "video/quicktime"; MimeTypes["shtml"] = "wwwserver/html-ssi"; MimeTypes["asa"] = "wwwserver/isapi"; MimeTypes["asp"] = "wwwserver/isapi"; MimeTypes["cfm"] = "wwwserver/isapi"; MimeTypes["dbm"] = "wwwserver/isapi"; MimeTypes["isa"] = "wwwserver/isapi"; MimeTypes["plx"] = "wwwserver/isapi"; MimeTypes["url"] = "wwwserver/isapi"; MimeTypes["cgi"] = "wwwserver/isapi"; MimeTypes["php"] = "wwwserver/isapi"; MimeTypes["wcgi"] = "wwwserver/isapi"; 如下为217.44.109.247对我机器(61.243.91.74)的一个普通请求的基本数据结构:ADD:217.44.109.247QUERY STRING(Hex):QUERY STRING(ASCII):ALL_HTTP:HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*HTTP_CONNECTION:Keep-AliveHTTP_HOST:61.243.91.74HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)PATH_INFO:REMOTE_HOST:217.44.109.247REMOTE_USER:REQUEST_METHOD:GETSERVER_NAME:61.243.91.74SERVER_PORT:80SERVER_PROTOCOL:HTTP/1.1URL:/Default.htmPhysicalPath:D:\localsite\Default.htm http://www.codeguru.com/internet/Get-Post.html to ok1234567(ok1234567) :谢谢你这也是个实现的方法,我看过你所给网页里面的那个DEMO觉得这样实现有些复杂 MFC 动态创建问题 Tab控件问题+ODBC编程的问题+源码的理解 (UI设计) 请问列表控件如何设计?? 求问:做屏幕取词中,如何取得ie中的词? 线程定时器同步 程序A.exe运行过程中,怎么(能不能)知道该程序里面的任何一个函数的地址,怎么去调用该函数执行?(在线..) 困惑我很久的一个radio button问题? 哪位大哥学过接口技术,帮小弟解决个问题!没学过的帮忙UP啊! 如何创建一个DialogBar 100分问个比较难的问题: Win32 SDK编程中如何播放一个Flash文件? vc 编译出错的小问题 请问有办法隐藏MSFlexGrid控件中的一列或几列数据吗?
[email protected]
谢谢
偶也很渴望,先谢谢了!
[email protected]
将返回我一个响应文件(此文件也是XML格式加上一个HTTP头),我接收此响应文件后,要将
此头去掉,只要XML格式的文件内容
我一份,谢谢啊:)
服务器端收到后返回正文为xml
因我和服务器那方规定我必须这样做 我想从那里得到我想要的服务必须得按照他的协议和规定
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
LPCSTR pServerName="211.139.140.151";
INTERNET_PORT nPort=10034;
LPCSTR pstrObjectName="req.xml";
LPCSTR pstrRefer="G:/mfq/myproject/write/PosSystem/";
CString str="POST/newRequest HTTP/1.0";
str+="\r\n";
str+="Content_Type:text/xml";
str+="\r\n";
str+="Content_Length:186";
LPCSTR pstrHeaders=str+"\r\n";
try
{
pServer=MySession.GetHttpConnection(pServerName,nPort);
pFile=pServer->OpenRequest(1,pstrObjectName,pstrRefer,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT); pFile->AddRequestHeaders(pstrHeaders,HTTP_ADDREQ_FLAG_REPLACE);
//??????????
pFile->SendRequest();
DWORD dwRet;
pFile->QueryInfoStatusCode(dwRet);
if( dwRet>=400 && dwRet<=499 )
{
AfxMessageBox(_T("出现请求错误"),MB_ICONEXCLAMATION);
return;
}
else if( dwRet>=500 &&dwRet<=599 )
{
AfxMessageBox(_T("服务器错误"),MB_ICONEXCLAMATION);
return;
} CString *Buf=NULL;
pFile->Read(Buf,pFile->GetLength());
pFile->Close();
pServer->Close();
}
catch (CInternetException* pEx)
{
TCHAR szErr[1024];
pEx->GetErrorMessage(szErr, 1024);
MessageBox(szErr,_T("错误"));
pEx->Delete();
}
if (pFile != NULL)
delete pFile;
if (pServer != NULL)
delete pServer;
MySession.Close();
为什么出现请求错误提示,我在调试中在//??????????标记处添加代码读出pFile的内容为空?
如果是POST文件,需要定义数据类型服务器响应头标结构如下,在结构后面发送数据就可以了:
sprintf(buf,"HTTP/1.0 %s\r\nContent-Length: %d\r\nContent-Type: %s\r\nDate: %s\r\nServer: %s\r\n\r\n",szStatusCode,iSize, szDataType,szDT, SERVERNAME);常用nContent-Type如下:
// Init MIME Types
//
MimeTypes["doc"] = "application/msword";
MimeTypes["bin"] = "application/octet-stream";
MimeTypes["dll"] = "application/octet-stream";
MimeTypes["exe"] = "application/octet-stream";
MimeTypes["pdf"] = "application/pdf";
MimeTypes["p7c"] = "application/pkcs7-mime";
MimeTypes["ai"] = "application/postscript";
MimeTypes["eps"] = "application/postscript";
MimeTypes["ps"] = "application/postscript";
MimeTypes["rtf"] = "application/rtf";
MimeTypes["fdf"] = "application/vnd.fdf";
MimeTypes["arj"] = "application/x-arj";
MimeTypes["gz"] = "application/x-gzip";
MimeTypes["class"] = "application/x-java-class";
MimeTypes["js"] = "application/x-javascript";
MimeTypes["lzh"] = "application/x-lzh";
MimeTypes["lnk"] = "application/x-ms-shortcut";
MimeTypes["tar"] = "application/x-tar";
MimeTypes["hlp"] = "application/x-winhelp";
MimeTypes["cert"] = "application/x-x509-ca-cert";
MimeTypes["zip"] = "application/zip";
MimeTypes["cab"] = "application/x-compressed";
MimeTypes["arj"] = "application/x-compressed";
MimeTypes["aif"] = "audio/aiff";
MimeTypes["aifc"] = "audio/aiff";
MimeTypes["aiff"] = "audio/aiff";
MimeTypes["au"] = "audio/basic";
MimeTypes["snd"] = "audio/basic";
MimeTypes["mid"] = "audio/midi";
MimeTypes["rmi"] = "audio/midi";
MimeTypes["mp3"] = "audio/mpeg";
MimeTypes["vox"] = "audio/voxware";
MimeTypes["wav"] = "audio/wav";
MimeTypes["ra"] = "audio/x-pn-realaudio";
MimeTypes["ram"] = "audio/x-pn-realaudio";
MimeTypes["bmp"] = "image/bmp";
MimeTypes["gif"] = "image/gif";
MimeTypes["jpeg"] = "image/jpeg";
MimeTypes["jpg"] = "image/jpeg";
MimeTypes["tif"] = "image/tiff";
MimeTypes["tiff"] = "image/tiff";
MimeTypes["xbm"] = "image/xbm";
MimeTypes["wrl"] = "model/vrml";
MimeTypes["htm"] = "text/html";
MimeTypes["html"] = "text/html";
MimeTypes["c"] = "text/plain";
MimeTypes["cpp"] = "text/plain";
MimeTypes["def"] = "text/plain";
MimeTypes["h"] = "text/plain";
MimeTypes["txt"] = "text/plain";
MimeTypes["rtx"] = "text/richtext";
MimeTypes["rtf"] = "text/richtext";
MimeTypes["java"] = "text/x-java-source";
MimeTypes["css"] = "text/css";
MimeTypes["mpeg"] = "video/mpeg";
MimeTypes["mpg"] = "video/mpeg";
MimeTypes["mpe"] = "video/mpeg";
MimeTypes["avi"] = "video/msvideo";
MimeTypes["mov"] = "video/quicktime";
MimeTypes["qt"] = "video/quicktime";
MimeTypes["shtml"] = "wwwserver/html-ssi";
MimeTypes["asa"] = "wwwserver/isapi";
MimeTypes["asp"] = "wwwserver/isapi";
MimeTypes["cfm"] = "wwwserver/isapi";
MimeTypes["dbm"] = "wwwserver/isapi";
MimeTypes["isa"] = "wwwserver/isapi";
MimeTypes["plx"] = "wwwserver/isapi";
MimeTypes["url"] = "wwwserver/isapi";
MimeTypes["cgi"] = "wwwserver/isapi";
MimeTypes["php"] = "wwwserver/isapi";
MimeTypes["wcgi"] = "wwwserver/isapi";
QUERY STRING(Hex):
QUERY STRING(ASCII):
ALL_HTTP:HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
HTTP_CONNECTION:Keep-Alive
HTTP_HOST:61.243.91.74
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)PATH_INFO:
REMOTE_HOST:217.44.109.247
REMOTE_USER:
REQUEST_METHOD:GET
SERVER_NAME:61.243.91.74
SERVER_PORT:80
SERVER_PROTOCOL:HTTP/1.1
URL:/Default.htm
PhysicalPath:D:\localsite\Default.htm
谢谢你
这也是个实现的方法,我看过你所给网页里面的那个DEMO
觉得这样实现有些复杂