2017-07-05 41 views
0

我很難使用Fiddler診斷Java應用程序中連接到Microsoft Graph API的問題。這裏是我的基本環境:使用Java應用程序中的Fiddler捕獲HTTP流量

JDK:1.8.0_131 的Apache的HttpClient:4.4 小提琴手:4.6

我試圖達到的終點是https://login.microsoftonline.com/common/oauth2/authorize我的問題是,流量不被捕獲提琴手。

我已經嘗試過各種事情,因爲這個問題谷歌搜索建議,但沒有得到它的工作。在我的應用程序,我設置了代理服務器設置如下:

httpClientBuilder.setProxy(new HttpHost(proxyServer, proxyPort, proxyScheme)); 
httpClientBuilder.build(); 
  • 如果我使用(「127.0.0.1」,8888,「HTTPS」):那時,我看到的錯誤是:無法識別 SSL消息,明文連接?
  • 如果我使用 ( 「127.0.0.1」,8888, 「HTTP」):然後,我看到的錯誤是:處理請求時的I/O 異常(org.apache.http.conn.UnsupportedSchemeException)捕獲 到 {TLS} - >http://127.0.0.1:8888->https://login.microsoftonline.com:443: http協議不支持

我嘗試其他的事情(例如 「本地主機」, 「本地主機」,等等的建議,並設定: -Djsse.enableSNIExtension = false),但到目前爲止沒有運氣。希望我失去了一些明顯的東西!謝謝你的幫助。

回答

0

事實證明,代理的第二個配置是正確的(使用「http」),但我忘記了是我在我的HttpClientBuilder中設置了ConnectionSocketFactoryRegistry。我沒有爲「http」註冊ConnectionSocketFactory,這導致第二個配置失敗。我將此添加到HttpClientBuilder中,現在我可以看到Fiddler捕獲的流量:

connectionSocketFactoryRegistryBuilder.register("http", new PlainConnectionSocketFactory()); 
相關問題