我正在使用HttpURLConnection
对特定URL执行GET请求。在某些仿真器和设备中,它可以完美运行,我得到200个代码,在其他仿真器和设备中,我得到307代码。有人可以告诉我这是什么问题吗?
这是我的代码:
URL cnx = new URL(url);
HttpURLConnection urlCon = (HttpURLConnection) cnx.openConnection(); urlCon.setRequestMethod("GET");
urlCon.setConnectTimeout((int) timeout);
urlCon.setReadTimeout((int) timeout);
urlCon.connect();
int code = urlCon.getResponseCode();
if (code != 200) {
return null;
}
我已经通过使用DefaultHttpClient而不是HttpURLConnection解决了我的问题。如果有人遇到相同的问题,请参见以下代码:
public String WebServiceCall(String url){
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
is.close();
res = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
return res;
}