[英]android http URL connection working with https, not working with http
[英]Java/Android - https not working in apache http
因此,我想使用此XML解析器類從我的一個站點中解析一個XML文件,該站點充當API。 所以我在這里遇到了這個XMLParser類: XMLParser.java
由於我在網站上使用了https,因此我很快發現這將無法使用,除非在代碼中實現了SSL,然后在SSL中使用以下方法從URL提取XML文件:
getXmlFromUrl(String url)
因此,對於我的測試環境,我很快創建了一個新的httpClient方法,該方法可以接受任何SSL證書。
public static HttpClient createHttpClient()
{
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
return new DefaultHttpClient(conMgr, params);
}
這是完成后的最終XMLParser.java。 XMLParser_New.java
但這一切都是徒勞的,因為我反復得到以下例外。
javax.net.ssl.SSLPeerUnverifiedException:沒有對等證書
我哪里出錯了,或者我不明白是什么。 謝謝 :)
您如何實施SSL。 您是否已按照以下步驟實施它:
您是否正在使用自簽名證書。 然后,您需要將該證書存儲在設備上並加載您自己的信任庫,以檢查SSL證書,而不是android默認的信任庫。
這是在Android上實現SSL的很好的文章: http : //www.codeproject.com/Articles/826045/Android-security-Implementation-of-Self-signed-SSL
我認為在您的情況下,缺少終端側的信任證書。 這就是它引發此異常的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.