索引超出了数组错误的范围

时间:2013-12-20 14:50:59

标签: c#

我目前正在使用输入文本框进行代理检查。我收到C#错误:索引超出了代理数组的范围(123.34.123.45:8080)。

我的代码将是......

string occoultProxy = "123.34.123.45:8080";
WebProxy proxy = new WebProxy(occoultProxy.Split(':')[0], Convert.ToInt32(occoultProxy.Split(':')[1])); //Error at this line
// WebProxy(string Host, int Port)

已更新

我尝试了其他代码,但仍然有错误代码。请帮忙。

 string[] address = occoultProxy.Split(new[] { ':' });
 MessageBox.Show(address[0].ToString());
 MessageBox.Show(address[1].ToString());
 WebProxy proxyHTTP = new WebProxy(address[0], Convert.ToInt32(address[1]));

输出

123.34.345.23 <!-- Some Proxy here, seems good here -->
IndexOutOfRangeException was unhandled( Index was outside the bounds of the array.)

4 个答案:

答案 0 :(得分:5)

您的输入必须没有端口段,您可以处理此问题:

WebProxy proxy = new WebProxy(new Uri("http://" + occoultProxy)); 

答案 1 :(得分:1)

这对你有用吗?

        var occoultProxy = "123.34.123.45:8080";
        var parts = occoultProxy.Split(':');

        if (parts.Length == 2)
        {
            var proxy = new WebProxy(parts[0], Convert.ToInt32(parts[1]));
        }
        else
        {
            throw new AnExceptionToHandleInYourUi();
        }

答案 2 :(得分:0)

String.Split()不会将单个字符作为参数。见String.Split

尝试将代码更改为

string[] address = occoultProxy.Split(new[] {':'});
WebProxy proxy = new WebProxy(address[0], Convert.ToInt32(address[1]));

答案 3 :(得分:0)

如果您尝试使用本地IP连接本地代理,请检查occoultProxy的值是否为“:: 1”。