編輯:關於Android編程
問題:用 android 4.4 寫android訪問http時,到connection.getResponseCode() 就不被執行,也不報錯。如下面紅色字體:
public static String getJsonContent(String url_path ,String encode){ String jsonString = ""; try { URL url = new URL(url_path); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setConnectTimeout(3000); connection.setRequestMethod("GET"); connection.setDoInput(true); //從服務器獲得數據 int responseCode = connection.getResponseCode(); if (200 == responseCode) { jsonString = changeInputStream(connection.getInputStream(),encode); } } catch (Exception e) { // TODO: handle exception } // return jsonString; } private static String changeInputStream(InputStream inputStream , String encode) throws IOException { // TODO Auto-generated method stub String jsonString = null; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] data = new byte[1024]; int len = 0; while((len=inputStream.read(data))!=-1){ outputStream.write(data, 0, len); } jsonString = new String(outputStream.toByteArray(), encode); inputStream.close(); return jsonString; }
此段代碼直接在java 工程裡是可以訪問http的,並且用浏覽器直接訪問 urp_path = http://192.168.0.102:8080/json_Project/servlet/JsonAction?action_flag=person 也是有相應的,證明url地址是對的。
解決方法:
原因:訪問HTTP的請求沒有放在單獨線程而是放在主線程了。
解決方法,把http的請求單獨放在一個新線程中,或者在調用此Http訪問的Activity的onCreat()方法內加:closeStrictMode().
public static void closeStrictMode() {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll().penaltyLog().build());
}
參考文章:http://hb.qq.com/a/20110914/000054.htm
謝謝大家對該系列博文的支持與關注,我們現在趁熱打鐵正式開始我們的Android天氣軟件的開發吧!沒有閱讀過之前關於該軟件的功能需求的同學可以先看一下 一起來開發Andro
最近有朋友問屏幕鎖定的問題,自己也在學習,網上找了下也沒太詳細的例子,看的資料書上也沒有有關屏幕鎖定程序的介紹,下個小決心,自己照著官方文檔學習下,現在做好了,廢話不多說
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn
感覺用到的次數無比多,要是要把它記下來,免得要用的時候又要重來一遍(個人記性太差)先看效果圖接下來,說說要怎麼寫1.首先在.gradle中添加一個jar包gradle-w