500分求实例代码可为一文件添加一个http头,向一URL发送此文件请求,同时可以接收回送回来的响应文件(高分回报)

解决方案 »

  1.   

    也给我一个
    [email protected]
    谢谢
      

  2.   

    [email protected]
    偶也很渴望,先谢谢了!
      

  3.   

    我也要谢谢拉
    [email protected]
      

  4.   

    To maofeiqiao():给你发过去了,希望对你有用
      

  5.   

    你是要把一个文件通过http上传, 还是仅仅接受一个http文件(响应)?
      

  6.   

    也给俺一个吧,也可以给分的[email protected]
      

  7.   

    我是将一个XML格式的文件加上一个http的头构成一个请求文件,向一URL发送此请求,些URL
    将返回我一个响应文件(此文件也是XML格式加上一个HTTP头),我接收此响应文件后,要将
    此头去掉,只要XML格式的文件内容
      

  8.   

    姑且不考虑你要传送的是什么格式的文件(其实什么格式都是一样的),在发送时只是在这个文件前加一个头,所以你看一下我给你发的browser,里面是使用字符串来处理向文件加HTTP头的
      

  9.   

    [email protected]
    我一份,谢谢啊:)
      

  10.   

    客户端向服务器端发出一个 POST,内容为一段xml
    服务器端收到后返回正文为xml
      

  11.   

    这个不难, 但是为什么这样做? 觉得有点别扭.不用你去包装, (难道你想用socket来做?). 直接用mfc的WinInet去做.到这儿去看看吧. 应该有你要的.
      

  12.   

    http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=903
      

  13.   

    to  lengnuan(冷暖):
    因我和服务器那方规定我必须这样做 我想从那里得到我想要的服务必须得按照他的协议和规定
      

  14.   

    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的内容为空?
      

  15.   

    对于服务器的请求,很简单: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";
      

  16.   

    如下为217.44.109.247对我机器(61.243.91.74)的一个普通请求的基本数据结构:ADD:217.44.109.247
    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
      

  17.   

    http://www.codeguru.com/internet/Get-Post.html
      

  18.   

    to ok1234567(ok1234567) :
    谢谢你
    这也是个实现的方法,我看过你所给网页里面的那个DEMO
    觉得这样实现有些复杂