我通过AsyncTask在我的Android应用程序中调用http web服务。代码如下。它非常奇怪,只有连接我的USB调试电缆并且我从我的android工作室启动应用程序作为调试模式时,它才会起作用。如果我在设备上安装它而不进行调试,它就不会发送http请求。可能是什么问题呢。代码片段是:
public class ServiceHelper extends AsyncTask {
private String txt;
private Context context;
private double latitude,longitude;
public ServiceHelper(double lati, double longi){
latitude = lati;
longitude = longi;
this.context=context;
}
protected Object doInBackground(Object[] objects) {
android.os.Debug.waitForDebugger();
URL url;
try {
url = new URL("http://somethinghere.com");
HttpURLConnection conn;
conn = (HttpURLConnection) url.openConnection();
String param="lat=" + URLEncoder.encode(String.valueOf(latitude),"UTF-8")+
"&long=" + URLEncoder.encode(String.valueOf(longitude),"UTF-8");
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setFixedLengthStreamingMode(param.getBytes().length);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.close();
String response= "";
Scanner inStream = new Scanner(conn.getInputStream());
//process the stream and store it in StringBuilder
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
return null;
}
答案 0 :(得分:1)
我认为问题出在这一行:
android.os.Debug.waitForDebugger();
如果你在没有调试器的情况下启动......我会一直等待调试器。
希望有所帮助