今天我們就已GET的方法去讀取位置資料並且顯示出來
至於為什麼不用HttpClient 就點此連結
直接進入正題
為了避免大大使用後產生 NetworkOnMainThreadException
所以用AsyncTask方式
程式碼如下 :
參考資料 : 來源
參考資料 : 解决HttpURLConnection setConnectTimeout超时无响应的问题
程式碼如下 :
public class Task extends AsyncTask<Void,Void,String>{
@Override
public void onPreExecute() {
super.onPreExecute();
}
@Override
public String doInBackground(Void... arg0) {
URL url = null;
BufferedReader reader = null;
StringBuilder stringBuilder;
try
{
// create the HttpURLConnection
url = new URL("http://www.jmarshall.com/easy/http/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 使用甚麼方法做連線
connection.setRequestMethod("GET");
// 是否添加參數(ex : json...等)
//connection.setDoOutput(true);
// 設定TimeOut時間
connection.setReadTimeout(15*1000);
connection.connect();
// 伺服器回來的參數
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
stringBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
stringBuilder.append(line + "\n");
}
return stringBuilder.toString();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
// close the reader; this can throw an exception too, so
// wrap it in another try/catch block.
if (reader != null)
{
try
{
reader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
return null;
}
@Override
public void onPostExecute(String result) {
super.onPostExecute(result);
if(!"".equals(result) || null != result){
text.setText(result);
}
}
}
參考資料 : 來源
參考資料 : 解决HttpURLConnection setConnectTimeout超时无响应的问题
歡迎轉載,請註明出處。
請問版主 我現在剛學android 連到mysql,是不是要放棄使用HttpClient改用HttpURLConnection這個了
回覆刪除請問版主 我現在剛學android 連到mysql,是不是要放棄使用HttpClient改用HttpURLConnection這個了
回覆刪除就目前能解決您的需求當然先用 HttpClient ,之後時間除充裕後,再慢慢改回 HttpUrlConnection 會比較好
刪除請問有POST方式嗎,謝謝
回覆刪除