首页 > 拜托C++、C#高手,把下边的代码翻译成C#的

拜托C++、C#高手,把下边的代码翻译成C#的

LPWSTR proxyName;

int on = 1;

if (on) {
    proxyName = L"127.0.0.1:3125";
}
else {
    proxyName = 0;
}

INTERNET_PER_CONN_OPTION_LIST OptionList;
INTERNET_PER_CONN_OPTION Option[3];
unsigned long listSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
Option[1].dwOption = INTERNET_PER_CONN_FLAGS;
Option[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
OptionList.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
OptionList.pszConnection = NULL;
OptionList.dwOptionCount = 3;
OptionList.dwOptionError = 0;

DWORD proxyType = PROXY_TYPE_DIRECT; // this proxy type disables any proxy server

if (proxyName) {
    if (proxyName[0]) {
        proxyType = PROXY_TYPE_PROXY; // a name has been passed, so choose the correct proxy type for enabling the proxy server
    }
}

Option[0].Value.pszValue = (LPWSTR)proxyName;
Option[1].Value.dwValue = proxyType;
if (on) {
    Option[2].Value.pszValue = (LPWSTR)L"";
}
else {
    Option[2].Value.pszValue = (LPWSTR)L"";
}
OptionList.pOptions = Option;

if (!InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, &OptionList, listSize)) {
    // handle error
}

InternetSetOption(0, INTERNET_OPTION_REFRESH, NULL, NULL);

=====================================================
就是上边这些代码,如果写成用C#调用WinInet的,应该怎么写?


代码就是设置Proxy地址,在C#里面可以直接使用WebRequestWebProxy来建立连接和设置代理。


/// Reference: /// http://msdn.microsoft.com/en-us/library/system.net.webrequest.proxy(v=vs.110).aspx /// /// Usage: /// createRequestWithProxy("http://www..com", "127.0.0.1:3125") WebRequest createRequestWithProxy(string, url, string proxyAddress) { WebRequest webRequest = WebRequest.Create(url); WebProxy webProxy = (WebProxy)webRequest.Proxy; try { webProxy.Address=new Uri(proxyAddress); } catch(UriFormatException e) { // do nothing } return webRequest; }

WebRequest req = WebRequest.Create(url);
req.Proxy = new WebProxy("127.0.0.1:3125");

当然如果是http的话,你也可以用WebClient

WebClient wc = new WebClient();
wc.Proxy = new WebProxy("127.0.0.1:3125");
【热门文章】
【热门文章】