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