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关系图解
實作相關