Android应用程序互联网连接



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

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

URL不是问题,我已经测试了许多URL。在这段代码中,最后一行给出了错误。我在我的开发机器上使用开放连接(没有代理只有防火墙),并且模拟器浏览器能够访问internet。

我已经添加了

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

尝试提示服务器你准备接受哪种类型的数据,然后再尝试影响输入流,如果它是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");

请提及您得到的错误/消息,以便我们知道服务器试图说什么!

这是我的工作代码示例。

运行下面的代码在AsyncTask类和传递你的URL,它将返回服务器的响应。
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;
    }

确保您在manifest文件中需要以下互联网权限。

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

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

用这个

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();
   }
 }

最新更新