收录日期:2018/07/18 14:45:22 时间:2016/05/21 14:08:39 标签:网络编程
如题
那就要看老兄你想提交啥内容!!!!!!!!!!1
关注
这样是上传了,是FTP还是HTTP?可用WINSOCK、
我打算作一个atl组件,以便在asp里使用,需要向其它网站提交一些数据。
一个比较简单的做法是:
    .....
    CInternetSession session;
    CInternetFile* file = NULL;
    try
{
   session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,5000);
   session.SetOption(INTERNET_OPTION_CONNECT_BACKOFF,1000);
   session.SetOption(INTERNET_OPTION_CONNECT_RETRIES,1);
   session.EnableStatusCallback(FALSE);

             file = (CInternetFile*) session.OpenURL(posturl); 
}
    catch (CInternetException* m_pException)
{
           // 如果有错误的话,置文件为空
           file = NULL; 
           m_pException->Delete();
}
    if (file)
{
          CString  somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符

           // 读写网页文件,直到为空
           while (file->ReadString(somecode) != NULL) //如果采用LPTSTR类型,读取最大个数nMax置0,使它遇空字符时结束
          { 
      somecode+=somecode;
           }
file->Close();
delete file;
}
    else
{
          //错误处理
          ;
}
    ....
这段代码好象出于vckbase里某篇文章

大家讨论一下在组件里, 如果我需要在较短时间内提交较多的请求的话,怎么作好一点,是不是对每个请求都开个线程。
描述的不太清楚,请大家见谅...
前提:
我的组件提供一个属性接口:posturl
           一个方法接口:Submmit()

Submmit()里调用的就是上面的代码,没有使用线程.
因为我不知到在供iis调用的atl组件里能不能使用线程
并且有如下测试现象:
如果请求的地址 posturl 所包含的内容较多时,我的iis就挂起,请求的地址 posturl 所包含的内容少的就没问题。但我同样用vc对话框程序作测试就没有这个问题 ,只是等待的时间长一点而已。

兄弟们帮帮忙,怎么作好一点
小弟在先谢谢各位了 解决后另开贴给分
我估计你的postUrl 里面可能是

x.y.com?a=aaa&b=bbb等内容,这本质上用的是get方法,提交的数据长度是有限制的,请用post方法把,我说的不一定对!