这就是我从我的应用程序连接到服务器的方式:
try {
URL url;
// get URL content
url = new URL(apiURL);
System.setProperty("http.keepAlive", "false");
trustAllHosts();
conn = (HttpsURLConnection) url.openConnection();
conn.setRequestProperty("Connection", "close");
conn.setHostnameVerifier(DO_NOT_VERIFY);
conn.setRequestMethod("GET");
conn.setRequestProperty(MainActivity.API_TOKEN, MainActivity.ENCRYPTED_TOKEN);
conn.setConnectTimeout(15000);
conn.setUseCaches(false);
in=conn.getInputStream();
// open the stream and put it into BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((line=br.readLine())!= null) {
builder.append(line);
}
result=builder.toString();
br.close();
} catch (MalformedURLException e) {
result=null;
} catch (java.net.SocketTimeoutException e) {
result=null;
} catch (IOException e) {
result=null;
} catch (Exception e) {
result=null;
}
当我从我的应用程序中使用它时,这就像一个魅力。但是,从小部件中使用它会被catch (IOException e)
捕获并向我发送以下错误:FileNotFound
。我的服务器实际上是将错误500返回给我,这意味着它遇到了问题。
使用asyncTask从小部件连接到服务器时是否有一些要求?我应该注意一些特殊的参数或设置吗?感谢。