1

私のアプリケーションでは、次のコードを使用してURLをヒットしようとしています

  try {
    url = new URL(serverURL);

    httpURLConnection = (HttpURLConnection) url.openConnection();

    int timeout = 30000;
    httpURLConnection.setConnectTimeout(timeout);
    httpURLConnection.setReadTimeout(timeout);

    httpURLConnection.connect();

    String httpResponseMessage = httpURLConnection.getResponseMessage();
    responseCode = httpURLConnection.getResponseCode();

    Log.i(LOG_TAG,"Response code "+responseCode);

    } catch (Exception e) {
    e.printStackTrace();
    }

ブラウザ(コンピュータと電話)で開いたときの(機密)URLは完全に機能し、期待どおりの応答が得られます。しかし、上記のコードを介して同じURLにアクセスすると、応答コード404(NOT FOUND)が返されます。誰かが問題が何であるかを教えてもらえますか?(機密性が高いため、URLを投稿できません。)

4

4 に答える 4

1

android.permission.INTERNETが宣言されていることを確認しますAndroidManifext.xmlか?

于 2012-05-31T14:45:23.057 に答える
1

問題が解決しました :)

      try {

            url = new URL(serverURL);

            Log.i(LOG_TAG, url+"");
            HttpGet method= new HttpGet(new URI(serverURL));
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet();
            request.setURI(new URI(serverURL));
            HttpResponse response = client.execute(method);
            responseCode = response.getStatusLine().getStatusCode();

            Log.i(LOG_TAG,"Response code response "+response);
            Log.i(LOG_TAG,"Response responseCode "+responseCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
于 2012-07-19T15:41:20.100 に答える
0

実際には、コードの2行をたどる必要はありません。

HttpGet request = new HttpGet();
request.setURI(new URI(serverURL));

1つのHttpGetで十分であり、2回は必要ありません。

于 2013-05-11T08:41:41.823 に答える
0

これが重要かどうかはわかりませんが、正確な問題がありました。

私は明示的にポート80の処理を行っていましたが、この行を削除すると機能しました。

HttpHost host = new HttpHost(targetHost, 80, "http");
于 2015-01-21T21:21:30.433 に答える