我是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标记并行。
答案 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"/>
让我知道你对此的评论!!