HttpUtils.java
apiUrl
為 server domain,string
格式,Ex:http://192.168.1.100:8000/rest/test
jString
為自定義物件的 string
格式,透過 Gson 將物件轉成 string
string
格式,再透過 Gson 將 string
轉成自定義物件
public class HttpUtils {
private static Logger logger = LoggerFactory.getLogger(FileViewerUtils.class.getName());
public static String httpConnectionPost(String apiUrl, String jString) {
HttpURLConnection conn = null;
StringBuilder response = new StringBuilder();
try {
// server domain
URL url = new URL(apiUrl);
// 建立要連線的 HttpURLConnection 物件
conn = (HttpURLConnection) url.openConnection();
// 設定 Header 參數
conn.setRequestProperty("Content-Type","application/json; charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
// 設定連線方法
conn.setRequestMethod("POST");
// 設定雙向溝通
conn.setDoInput(true); // app 端是否接收 server 的回傳結果
conn.setDoOutput(true); // app 端是否傳送資料給 server; if true, connection 會自動將 RequestMethod 設為 POST
// 設定等待時間(ms). 等待時間到若 server 無回應則會跳例外
conn.setConnectTimeout(5000);
// 其他參數
//conn.setReadTimeout(10000);
//conn.setUseCaches(false);
DataOutputStream os = new DataOutputStream(conn.getOutputStream());
os.writeBytes(jString);
os.flush();
os.close();
/** Get Response */
InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
response.append('\r');
}
reader.close();
}
catch (Exception e) {
logger.error(String.valueOf(e));
}
finally {
if(conn != null) {
// 關閉連線
conn.disconnect();
}
}
return response.toString();
}
}
[Android]HttpURLConnection 之POST&GET手把手完整教學解析
Android - HttpURLConnection POST Json
Android网络之HttpUrlConnection和Socket关系图解
實作相關
Android 4.4 之前,儲存空間:
Aug 21, 2023//設定隱藏標題 getSupportActionBar().hide(); //設定隱藏狀態 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); Ref. 【Android】隱藏標題列(Title Bar)與狀態列(Status Bar)
Jul 28, 2023角色GATT Server/ Peripheral: BLE device GATT Client/ Central: 手機 未配對情況下,BLE device 會一直廣播,直到手機發送 request 給 BLE device,等待 BLE device 回傳 response。 定義: uuid 0x2800 is Service uuid 0x2803 is Characteristics Ref.
May 25, 2023簡述 Service可以在背景不斷的工作,直到停止或是系統無法提供資源為止。 Service 需要透過某Activity 或者其他Context 物件來啟動。 Service不需要和 user 互動,所以沒有操作介面。 生命週期與Activity是各自獨立的,Activity就算關閉,Service仍然可以繼續執行。 類似 BroadcastReceiver,需要定義一個繼承 Service 的類別,並覆寫其中的生命週期函數,最後在AndroidManifest.xml中宣告才能使用 Service可以同時支援 Started 與 Bind 兩種模式。在這種情況下,Service 需要等到兩種模式都被關閉才會觸發onDestroy()事件。 Service 只有第一次被啟動時,會執行onCreate(),若重複啟動則不會執行onCreate()。 Service的運作優先權相當的高,一般來說除非系統資源耗盡,否則 Android 不會主動關閉一個已被啟動的Service。一旦系統有足夠的資源,被 Android 關閉的Service也會被重新啟動。 兩者都需要在AndroidManifest.xml宣告
May 9, 2023or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up