我有一個類的Android HttpURLConnection類總是拋出異常
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.lang.Exception;
import java.net.HttpURLConnection;
public class HttpURLConnectionExample {
private final String USER_AGENT = "Mozilla 5.0";
// HTTP GET request
public ArrayList<dispencer> sendGet() throws Exception {
String url = "http://192.168.1.9";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
ArrayList<dispencer> dispList = new ArrayList<dispencer>();
String[] strRows = response.toString().split("@");
for (int i= 0; i <strRows.length; i++) {
dispencer disp = new dispencer(strRows[i]);
if (!disp.isOk) continue;
dispList.add(disp);
System.out.println(disp.indirizzo);
}
return dispList;
}
}
我調用該方法sendGet
這樣。
HttpURLConnectionExample httpFnd= new HttpURLConnectionExample();
ArrayList<dispencer> listAr = new ArrayList<dispencer>();
try{
listAr = httpFnd.sendGet();
}
catch (Exception Exception){
fndLayout.setVisibility(View.GONE);
System.out.println("exception handled");
}
每當我試着打電話sendGet我總是得到處理的消息例外,從來沒有收到我的arrayList
回來,就像是從來沒有建立的連接。 當我調用該方法我也收到此錯誤
d/NetworkSecurityConfig:沒有網絡安全配置的規定,使用 平臺默認
,難道是我的問題的原因是什麼?
感謝您的幫助。
編輯我看到我需要使用asyncTask來預防拋出異常安迪關於我如何實現它的建議?
添加完整的錯誤日誌 – Jayanth
什麼例外是trhown ? –
這是錯誤日誌02/14 18:03:54:啓動應用程序 W/System:ClassLoader引用未知路徑:/data/data/com.example.lele.condomadv/lib 熱交換更改,活動重新啓動 E/EGL_emulation:TID 4615:eglSurfaceAttrib(1174):錯誤0x3009(EGL_BAD_MATCH) W/OpenGLRenderer:無法設置EGL_SWAP_BEHAVIOR上表面0x9a6e0060,誤差= EGL_BAD_MATCH E/EGL_emulation:TID 4615:eglSurfaceAttrib(1174):錯誤0x3009(EGL_BAD_MATCH) W/OpenGLRenderer:無法設置表面上的EGL_SWAP_BEHAVIOR 0x9aac73e0,錯誤= EGL_BAD_MATCH –