HttpURLConnection:在某些Android设备和仿真器中获得307响应代码

问题描述 投票:1回答:1

我正在使用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; 
}
android httpurlconnection http-status-codes
1个回答
0
投票

我已经通过使用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;
}
© www.soinside.com 2019 - 2024. All rights reserved.