ISA SERVER的代理应该不需要用户名和密码的验证吧?
InternetOpen(0,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);其中的参数INTERNET_OPEN_TYPE_PRECONFIG不是已经说明有代理的话就上注册表中取吗?应该不用再显式地指定代理的IP和PORT了吧?为什么我在看有些代码时还要先HttpSendRequest(hRequest,NULL,0,NULL,0);再用
HttpQueryInfo(hRequest, HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_STATUS_CODE, &dwStatus,&dwStatusSize, NULL);和InternetSetOption(hRequest, INTERNET_OPTION_PROXY_USERNAME, (LPVOID)szUserName, (unsigned long*)(strlen)(szUserName)+1));去设置代理的用户名和密码呢?而我的程序(如下)却不能穿过代理?
hInternet = InternetOpen(0,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
     if(hInternet)
{
     hConnect = InternetConnect(hInternet,szServerName,INTERNET_DEFAULT_HTTP_PORT,
     szUserName,szPassword,INTERNET_SERVICE_HTTP,0,0);//这里的用户密码是WEB服务器上的用户名和密码
     if(hConnect)
{
     hRequest = HttpOpenRequest(hConnect,"POST","/cgi-bin/test.cgi","HTTP/1.1",NULL,NULL,0,0);
     if(hRequest)
{
nLen=strlen(data); HttpSendRequest(hRequest,0,0,(VOID *)data,nLen);

     HttpEndRequest(hRequest,NULL,0,0);
     InternetCloseHandle(hRequest);
     InternetCloseHandle(hConnect);
         InternetCloseHandle(hInternet);

解决方案 »

  1.   

    我查了一些资料,好象在 HttpOpenRequest(hConnect,"POST","/cgi-bin/test.cgi","HTTP/1.1",NULL,NULL,0,0);中设置参数INTERNET_FLAG_KEEP_CONNECTION好象就OK了,不用HttpQueryInfo和InternetSetOption来设置用户名和密码(这是用于有验证的代理),是不是这样呢?请高手指点!!!
      

  2.   

    看看这个帖子,可以解决你的问题:http://community.csdn.net/Expert/topic/3987/3987488.xml?temp=.8627283
      

  3.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/handling_authentication.asp
      

  4.   

    TO:xqchang(),你指的打不开:(
    TO:etre(林荃),你说的太不详细了:(,不过MSDN的这篇我看过,谢谢!
    解决方法如我上面所说。但对其它不同的代理还是无法过去。结贴!