gpt4 book ai didi

java - Android:异常 "java.lang.IllegalStateException: Scheme ' https' 未注册”

转载 作者:行者123 更新时间:2023-11-29 21:48:13 24 4
gpt4 key购买 nike

由于强制关闭,用户向我发送了此堆栈跟踪信息:

java.lang.IllegalStateException: Scheme 'https' not registered.
at org.apache.http.conn.scheme.SchemeRegistry.getScheme(SchemeRegistry.java:80)
at org.apache.http.impl.conn.DefaultHttpRoutePlanner.determineRoute(DefaultHttpRoutePlanner.java:107)
at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:581)
at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:923)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:473)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
at com.augustinianum.augustinianum.AlarmService.doWakefulWork(AlarmService.java:70)
at com.commonsware.cwac.wakeful.WakefulIntentService.onHandleIntent(WakefulIntentService.java:106)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.os.HandlerThread.run(HandlerThread.java:60)

这是强制关闭类中最重要的代码,它是 Commonsware 的 WakefulIntentService,它基本上只是一个普通的 IntentService,但它自动持有一个唤醒锁(不要认为这与异常(exception),但以防万一)。此代码下载网页的 HTML 代码:

private DefaultHttpClient createHttpClient() {
HttpParams my_httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(my_httpParams, 3000);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ThreadSafeClientConnManager multiThreadedConnectionManager = new ThreadSafeClientConnManager(my_httpParams, registry);
DefaultHttpClient httpclient = new DefaultHttpClient(multiThreadedConnectionManager, my_httpParams);
return httpclient;
}


@Override
protected void doWakefulWork(Intent arg0) {

int mStatusCode = 0;
String content = "";

String url = "http://www.example.com/";

DefaultHttpClient httpclient = createHttpClient();
HttpGet httpget = new HttpGet(url);

try {
HttpResponse response = httpclient.execute(httpget);
StatusLine statusLine = response.getStatusLine();
mStatusCode = statusLine.getStatusCode();

if (mStatusCode == 200){
content = EntityUtils.toString(response.getEntity());
}

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

第 70 行(崩溃的地方)是这一行:

HttpResponse response = httpclient.execute(httpget);

在我的 list 中,我只是这样声明的:

<service
android:name=".AlarmService">
</service>

奇怪的是,这个异常并不是在所有设备上都会发生,而且并不总是在执行这段代码时发生。大多数时候,这段代码执行得很好,但有时会发生这种异常。

有人知道我能做些什么吗?

非常非常感谢!

最佳答案

您不需要 ThreadSafeClientConnManager,因为 IntentService 只使用一个线程。我会删除所有这些东西,这将摆脱您的自定义 SchemeRegistry,这可能会帮助您处理未注册的方案。

关于java - Android:异常 "java.lang.IllegalStateException: Scheme ' https' 未注册”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com