WebRequest request = (HttpWebRequest)WebRequest.Create(urlStr);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
string tempString = null;
int count = 0;
do
{
count = resStream.Read(buf, 0, buf.Length);
if (count != 0)
{
tempString = Encoding.ASCII.GetString(buf, 0, count);
sb.Append(tempString);
}
}
while (count > 0); // any more data to read?
C#에서 인증서 까지 가져오기.
public string GetHttpResult(string urlStr)
{
string certPath = cqLog.AppPath + "\\" + tsi.Host + ".cer";
if (!File.Exists(certPath))
{
// 오류
}
X509Certificate cert = X509Certificate.CreateFromCertFile(certPath);
StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlStr);
request.ClientCertificates.Add(cert); // Attaching the Certificate To the request
TrustAllCert ValCallback = new TrustAllCert();
ServicePointManager.ServerCertificateValidationCallback =
new System.Net.Security.RemoteCertificateValidationCallback(ValCallback.OnValidationCallback);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
string tempString = null;
int count = 0;
do
{
count = resStream.Read(buf, 0, buf.Length);
if (count != 0)
{
tempString = Encoding.ASCII.GetString(buf, 0, count);
sb.Append(tempString);
}
}
while (count > 0); // any more data to read?
// print out page source
//Console.WriteLine(sb.ToString());
return sb.ToString();
}
...
public class TrustAllCert
{
public TrustAllCert()
{
}
public bool OnValidationCallback(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
}
'Programming' 카테고리의 다른 글
mssql alter table column (테이블 필드 수정, 삭제, 추가) 및 테이블명, 필드(컬럼)명 수정 (0) | 2011.11.07 |
---|---|
비동기 호출하기(델리게이트, 스레드 이용) (0) | 2011.10.20 |
IIS 5.1 접속 제한 늘리기 (0) | 2011.09.19 |
Open Source DotNetNuke 설치기. (0) | 2011.01.19 |