Android应用互联网连接

时间:2012-12-24 06:30:34

标签: android

我是Android新手,这是我的第一个应用程序。我要连接互联网并从我的公司服务器下载JSON但无法获得输入流请检查此代码并向我提供帮助。

URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());

网址不是我测试了很多网址的问题。在此代码中,最后一行给出错误。我在我的开发机器上使用开放式连接(无代理防火墙),模拟器浏览器可以访问互联网。

我已添加

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

与Manifest文件中的uses-sdk标记并行。

3 个答案:

答案 0 :(得分:1)

尝试建议服务器在尝试fect输入流之前准备接受哪种数据,如果是json,让服务器知道你接受application / json类型的数据,比如

httpcon = (HttpURLConnection) ((new URL(http://www.android.com/).openConnection()));
httpcon.setRequestProperty("Accept", "application/json");

并且不要忘记您要执行的操作,GET或POST

httpcon.setRequestMethod("POST"); or  httpcon.setRequestMethod("GET");

请提及您收到的错误/消息,以便我们知道服务器要说的内容!

答案 1 :(得分:0)

使用此功能。

URL url = new URL("http://www.google.com/");
   HttpURLConnection myConnection = (HttpURLConnection) url.openConnection();
   try {
     InputStream in = new BufferedInputStream(myConnection.getInputStream());
     readStream(in);
    finally {
     myConnection.disconnect();
   }
 }

并在清单文件中添加用户权限。

答案 2 :(得分:0)

这是我的工作代码示例..

您需要在AsyncTask 类中运行以下代码并传递您的网址,它将从服务器返回响应。

public String getResult(String url) {

        Log.v(TAG, "Final Requsting URL is : :"+url);

        String line = "";
        String responseData = null;

        try {
            StringBuilder sb = new StringBuilder();
            String x = "";
            URL httpurl = new URL(url);
            URLConnection  tc= httpurl.openConnection();


            /*URLConnection tc = twitter.openConnection();
            HttpURLConnection httpConnection = (HttpURLConnection) tc;
            httpConnection.setRequestMethod("POST");*/
            //tc.setRe
            //tc.setDoOutput(false);

            BufferedReader in = new BufferedReader(
                           new InputStreamReader(tc.getInputStream()));

            while ((line = in.readLine()) != null) {
                sb.append(line + "\n");
                x = sb.toString();
            }
            responseData = new String(x);
        }
        catch (UnknownHostException uh){            
            Log.v("NewWebHelper", "Unknown host :");
            uh.printStackTrace();
        }
       catch (FileNotFoundException e) {
           Log.v("NewWebHelper", "FileNotFoundException :");
            e.printStackTrace();
         }
        catch (IOException e) {
            Log.v("NewWebHelper", "IOException :");
            e.printStackTrace();
        }
      catch (Exception e) {
          Log.v("NewWebHelper", "Exception :");
            e.printStackTrace();
        }
        return responseData;
    }

同样请确保您的清单文件需要具有以下互联网权限..

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

让我知道你对此的评论!!

相关问题