Android http post可在模拟器上运行,但不适用于我的真实设备

时间:2012-11-09 18:35:14

标签: android http-post

我正在使用上面的代码从我的网络托管服务商那里获取信息。这很好奇,但脚本在AVD中运行良好,但在我的真实设备(Samsung Galaxy Note)上运行不正常。它不会抛出任何异常。

try{
    HttpClient htClient = getHttpClient();
    HttpPost htPost = new HttpPost("http://myworkingurl/access.php"); 
    Log.i("MyLog", "Print 1");  // this is outputed to LogCat
    HttpResponse htResponse = htClient.execute(htPost);
    Log.i("MyLog", "Print 2"); // no output here
} catch (ClientProtocolException ce) {
    Log.i("MyLog", ce.getMessage()); // no output here
} catch (IOException e) {
    Log.i("MyLog", e.getMessage()); // no output here
}

LogCat中没有错误。它输出“Print 1”,跳过try块中的所有剩余代码,调用此方法的类会抛出一个带有void消息的异常。 注意:我在uses-sdk之后放了uses-permission标签android.permission.INTERNET,并在模拟器中正常工作。

请帮忙!

1 个答案:

答案 0 :(得分:0)

您最好在asyncTask中尝试相同的代码。这可能是因为严格的模式。

class ARequestTask extends AsyncTask<String, String, String>{

        @Override
        protected String doInBackground(String... params) {
         //http request here
        //return the response as string
         }
       @Override
       protected void onPostExecute(String result) {
          // use the result as you wish
       }