2

「https」を使用してサーバーから Web サービスを呼び出しています。HttpsURLConnection ではなく単純な HttpURLConnection コードを使用しました。コードはタブレット (OS 4.0.4) では f9 で動作しますが、デバイス (2.3.5) では動作しません。

コードは次のように単純です。

  URLConnection urlConn = null;
  URL url = new URL("https://myurl");
   urlConn = null;
   urlConn = url.openConnection();


  if (!(urlConn instanceof HttpURLConnection)) {
        try {
            throw new IOException("URL is not an Http URL");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    HttpURLConnection httpConn = (HttpURLConnection) urlConn;
    httpConn.setAllowUserInteraction(false);
    httpConn.setInstanceFollowRedirects(true);
    try {
        httpConn.setRequestMethod("GET");
        httpConn.connect();
    } catch (ProtocolException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
        httpResponsecode = httpConn.getResponseCode();

httpresponsecode は、デバイスで呼び出す場合は 400 ですが、タブレットから呼び出す場合は 200 です。

助言がありますか?

4

1 に答える 1

1

HttpURLConnectionは、古いOSバージョンで次のリダイレクトをサポートしているとは思いません。代わりにapacheHTTPクライアントを使用することをお勧めします。バグがはるかに少なくなります。

于 2012-09-22T13:46:34.870 に答える