如果您对这个问题有任何帮助或建议,我将不胜感激。
我是Android编程新手。我正在尝试连接并从链接获得响应,例如:https://stackoverflow.com/
我使用HttpResponse
获得响应,然后使用EntityUtils.toString(rp.getEntity())
函数将响应转换为字符串。我的代码在模拟器中完美运行,但当我试图在真实设备中运行项目时,即三星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线程
阅读下面的链接,它说如何在单独的(非UI)线程中使用互联网。