小编Jef*_*man的帖子

如何通过Java中的代理发送HTTPS请求?

我正在尝试使用HttpsUrlConnection类向服务器发送请求.服务器有证书问题,所以我设置了一个信任所有东西的TrustManager,以及一个同样宽松的主机名验证器.当我直接提出请求时,这个管理器工作得很好,但是当我通过代理发送请求时似乎根本没有使用它.

我设置我的代理设置如下:

Properties systemProperties = System.getProperties();
systemProperties.setProperty( "http.proxyHost", "proxyserver" );
systemProperties.setProperty( "http.proxyPort", "8080" );
systemProperties.setProperty( "https.proxyHost", "proxyserver" );
systemProperties.setProperty( "https.proxyPort", "8080" );
Run Code Online (Sandbox Code Playgroud)

默认SSLSocketFactory的TrustManager设置如下:

SSLContext sslContext = SSLContext.getInstance( "SSL" );

// set up a TrustManager that trusts everything
sslContext.init( null, new TrustManager[]
    {
        new X509TrustManager()
        {
            public X509Certificate[] getAcceptedIssuers()
            {
                return null;
            }

            public void checkClientTrusted( X509Certificate[] certs, String authType )
            {
                // everything is trusted
            }

            public void checkServerTrusted( X509Certificate[] certs, String authType )
            {
                // everything is trusted
            } …
Run Code Online (Sandbox Code Playgroud)

java proxy sslhandshakeexception

27
推荐指数
1
解决办法
10万
查看次数

您是否认为编程任务非常重要,以至于您始终以周到而缓慢的方式执行这些任务?

有一些任务,特别是那些涉及删除文件夹作为SU的任务,在我按下Enter键之前我做得很周到.我想如果其他人看到我以我认真的速度做这些,他们会畏缩.您认为值得进行的关键编程任务是否值得这种深思熟虑的考虑?

task

4
推荐指数
3
解决办法
636
查看次数

函数返回时的 NullReferenceException

运行我的多线程应用程序时,我收到 NullReferenceException,但仅当我在调试器之外以 Release 模式运行时。堆栈跟踪被记录下来,它总是指向同一个函数调用。我在函数中放置了几个日志语句来尝试确定它会到达多远,并且每个语句都会被记录,包括函数最后一行的一个。有趣的是,当 NullReferenceException 发生时,函数调用后的语句不会被记录:

    // ...
    logger.Log( "one" );  // logged
    Update( false );
    logger.Log( "eleven" );  // not logged when exception occurs
}

private void Update( bool condition )
{
    logger.Log( "one" );  // logged
    // ...  
    logger.Log( "ten" );  // logged, even when exception occurs
}
Run Code Online (Sandbox Code Playgroud)

每次调用函数时都不会发生异常。是否有可能在函数执行之前或期间堆栈被破坏,从而导致返回地址丢失,从而导致空引用?我不认为在 .NET 下这种事情是可能的,但我想更奇怪的事情发生了。

我尝试用函数的内容替换对函数的调用,所以一切都内联发生,然后异常发生在如下所示的行上:

foreach ( ClassItem item in classItemCollection )
Run Code Online (Sandbox Code Playgroud)

我已经通过日志验证“classItemCollection”不为空,并且我还尝试将 foreach 更改为 for 以防 IEnumerator 正在做一些有趣的事情,但异常发生在同一行上。

关于如何进一步调查的任何想法?

更新:一些响应者提出了与确保记录器不为空有关的可能解决方案。需要明确的是,在异常开始发生后,出于调试目的添加了日志记录语句。

c# weak-references

3
推荐指数
1
解决办法
1569
查看次数

标签 统计

c# ×1

java ×1

proxy ×1

sslhandshakeexception ×1

task ×1

weak-references ×1