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);
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);
TO:etre(林荃),你说的太不详细了:(,不过MSDN的这篇我看过,谢谢!
解决方法如我上面所说。但对其它不同的代理还是无法过去。结贴!