HttpWebRequest и прокси сервер

 
0
 
.NET
ava
it_medved | 15.01.2008, 12:04
Не загружается страничка, потому что интернет работает через прокси-сервер, а как к нему подключится я не знаю...
В архиве проект,
вот пример кода:

struct DATA
{
public string pathName;
public string text;
}
public Form1()
{
InitializeComponent();
textBox1.Text = "file:///F:/HTML/World of Warcraft - Goha_ru3.htm";
}

private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
try
{
if (!checkBox1.Checked)
{
FileWebRequest req = (FileWebRequest)HttpWebRequest.Create(str);
FileWebResponse rs = (FileWebResponse)req.GetResponse();
StreamReader read = new StreamReader(rs.GetResponseStream(),
Encoding.ASCII);
textBox2.Text = read.ReadToEnd();
}
else
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(str);
HttpWebResponse rs = (HttpWebResponse)req.GetResponse();
StreamReader read = new StreamReader(rs.GetResponseStream(),
Encoding.ASCII);
textBox2.Text = read.ReadToEnd();
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}


}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "HTML files *.htm|*.htm";
dlg.Multiselect = false;
if (dlg.ShowDialog() == DialogResult.OK)
{
textBox1.Text = dlg.FileName;
}
}


private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "txt files|*.txt";
if (dlg.ShowDialog() == DialogResult.OK)
{
try
{
System.Threading.Thread thread = new System.Threading.Thread(SaveFile);
DATA data = new DATA();
data.pathName = dlg.FileName;
data.text = textBox2.Text;
thread.Start(data);
}
catch
{ }
}
}
private static void SaveFile(Object ob)
{
try
{
DATA data = (DATA)ob;
FileStream file = new FileStream(data.pathName, FileMode.Create);
StreamWriter stream = new StreamWriter(file);
stream.Write(data.text);
stream.Close();
MessageBox.Show("File saved");
}
catch
(System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Comments (2)
ava
mr.DUDA | 16.01.2008, 10:41 #
Можно юзать настройки прокси из IE, для этого у FileWebRequest/HttpWebRequest нужно задать свойство Proxy и возможно ещё Credentials (не помню). Пример:
            req.Proxy = WebProxy.GetDefaultProxy();
req.Credentials = WebProxy.GetDefaultProxy().Credentials;

ava
Experimenter | 16.01.2008, 18:50 #
делаю так:
1. в файле настроек пишу:

<!--Адрес прокси-сервера-->
<Proxy>127.0.0.1:9999</Proxy>
<!--Использование прокси (0 - нет; 1 - да)-->
<UseProxy>1</UseProxy>
<!--Логин для прокси-->
<ProxyLogin></ProxyLogin>
<!--Пароль для прокси-->
<ProxyPassword></ProxyPassword>
2. в коде:

if (_useProxy)
{
webreq.Proxy = new WebProxy(_proxy);
webreq.Proxy.Credentials = new NetworkCredential(_proxyLogin, _proxyPassword);
}
помогает...
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit