編輯:關於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的天氣軟件(二)
謝謝大家對該系列博文的支持與關注,我們現在趁熱打鐵正式開始我們的Android天氣軟件的開發吧!沒有閱讀過之前關於該軟件的功能需求的同學可以先看一下 一起來開發Andro
Android實現屏幕鎖定源碼詳解
最近有朋友問屏幕鎖定的問題,自己也在學習,網上找了下也沒太詳細的例子,看的資料書上也沒有有關屏幕鎖定程序的介紹,下個小決心,自己照著官方文檔學習下,現在做好了,廢話不多說
Android獲取屏幕尺寸大小代碼實例
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn
listview的上拉加載,下拉刷新
感覺用到的次數無比多,要是要把它記下來,免得要用的時候又要重來一遍(個人記性太差)先看效果圖接下來,說說要怎麼寫1.首先在.gradle中添加一個jar包gradle-w