簡體   English   中英

Android HttpResponse-在模擬器中工作,但在設備中工作

[英]Android HttpResponse - working in Emulator but not working in Device

我是Android編程的新手。 我正在嘗試連接並從鏈接獲取響應,例如: https : //stackoverflow.com/

我已經使用HttpResponse來獲取響應,然后使用EntityUtils.toString(rp.getEntity())函數將響應轉換為字符串。 我的代碼在模擬器中運行完美,但是當我嘗試在真實設備(即Samsung Galaxy Tab 7.0)中運行項目時,它無法運行並顯示“不幸的是,...已停止”。

有人可以讓我知道為什么會這樣嗎,以及解決方案是什么? 代碼如下:

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView txt = (TextView) findViewById(R.id.textView1);
        String pageStr = "***";

        try
        {
            HttpClient hc = new DefaultHttpClient();
            HttpPost post = new HttpPost("https://stackoverflow.com/");

            HttpResponse rp = hc.execute(post);

            if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
            {
                pageStr = EntityUtils.toString(rp.getEntity());
            }
            else
            {
                Toast.makeText(getApplicationContext(), "Failed!!", Toast.LENGTH_LONG).show();
            }
        }catch(IOException e){
            e.printStackTrace();
        }  

        txt.setText(pageStr);

    }
}

我在manifest文件中使用了以下權限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

關於此問題的任何幫助或建議,將不勝感激。

它不起作用,因為您嘗試在UI線程中訪問Internet。

閱讀以下鏈接,它說明了如何在單獨的(非UI)線程中使用Internet

暫無
暫無

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

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