簡體   English   中英

在android中無法使用httpconnection連接

[英]Cannot connect using httpconnection in android

我正在使用android 2.3.3,我已經制作了一個工作得很好的rss閱讀器,然后我將那個簡單的rss閱讀器的代碼集成到另一個活動中,只需復制粘貼它,沒有錯誤。

問題是當我在我的模擬器上運行應用程序時,它給出了連接異常的錯誤。 然后我通過在try block中的每行之后放置toast來解決問題是在httpconnection.connect(); 線。

我在android清單中添加了權限,而我的logcat發出了javaio exception:error connecting的警告javaio exception:error connecting

    try {
        HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
        //Toast.makeText(this, "urlconnection passed", Toast.LENGTH_SHORT).show();
        httpURLConnection.setAllowUserInteraction(false);
        httpURLConnection.setInstanceFollowRedirects(true);
        //Toast.makeText(this, "setting response method", Toast.LENGTH_SHORT).show();
        httpURLConnection.setRequestMethod("GET");
        //Toast.makeText(this, "connecting", Toast.LENGTH_SHORT).show();
        httpURLConnection.connect();
        Toast.makeText(this, "on response code", Toast.LENGTH_SHORT).show();
        response = httpURLConnection.getResponseCode();
        //Toast.makeText(this, "response code passed", Toast.LENGTH_SHORT).show();
        if (response == HttpURLConnection.HTTP_OK) {
            //Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show();
            inputStream = httpURLConnection.getInputStream();
        }

    } catch (Exception e) {
        // TODO: handle exception
        throw new IOException("Error connecting");
    }

這里創建對象的代碼:

URL url = new URL(UrlString);
URLConnection connection = url.openConnection();
if (!(connection instanceof HttpURLConnection)) 
  throw new IOException("Not a HTTP connection"); 

它給出了networkonmainthread異常

這意味着您正在主線程上執行網絡操作,並且在嚴格模式下不允許這樣做。

“在主線程中”通常意味着您在事件處理程序中執行此操作,如onResumeonPause或OnClickListener的onClick方法。 您可以查看此帖子( 無痛線程 )以了解問題是什么以及為什么不允許這樣做。 通常,如果您在主線程中執行網絡操作,它將阻止GUI事件的處理,如果網絡操作很慢,您的應用程序將無法響應。

嚴格模式出現在API級別9中,因此這解釋了為什么如果min SDK版本為10,以及為什么它適用於min SDK版本8時出現問題。

您應該使用AsyncTask或其他方法在后台執行此操作。 你可以參考1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM