2012-08-01 3 views
1

Httpwebrequest를 사용하여 외부 라이브 미팅 URL에 액세스하고 401 인증되지 않은 오류를 얻으려고합니다. 로컬 시스템에서 동일한 코드가 작동합니다.HttpWebRequest를 통해 외부 실시간 미팅 URL에 액세스하는 방법

코드 :

 HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(PostingUrl); 
    CredentialCache CredMCCache = new CredentialCache(); 
     myReq.PreAuthenticate = true; 
     CredMCCache.Add(new System.Uri(PostingUrl),"Basic",new System.Net.NetworkCredential("username","password") 
myReq.Credentials = CredMCCache; 
     myReq.KeepAlive = true; 
     myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"; 
     myReq.Accept = "*/*"; 
     myReq.Headers.Add("Accept-Language", "en-us"); 
     myReq.Headers.Add("Accept-Encoding", "gzip, deflate"); 
     WebProxy proxyObject = new WebProxy("proxy url with port", false); 
     myReq.Proxy = proxyObject; 
     myReq.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; 
     myReq.Method = "GET"; 
     HttpWebResponse myResp = null; 


      // Get the response from the conference center 
      myResp = (HttpWebResponse)myReq.GetResponse(); 

나는 위의 줄에 오류가 발생하고있다. 모든 포인터가 도움이 될 것입니다.

답변

0

왜 당신은 프록시를 설정하는, 예를 들어

myReq.Proxy = proxyObject;

이 작업을 수행해야합니까? 만약 당신이 실제로 기업용 프록시를 통해가는 경우, IE에서 설정 (있는 경우)을 선택하므로 HttpWebRequest에 대한 프록시를 설정할 필요가 없습니다.

둘째, 원격 인증을 위해 기본 인증을 사용하려고합니까? 현재 사용중인 것처럼 보이므로 헤더의 자동 세부 정보를 설정하려면이 옵션을 사용하십시오.

string authInfo = userName + ":" + userPassword; 
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); 
myReq.Headers["Authorization"] = "Basic " + authInfo; 
관련 문제