web-dev-qa-db-ja.com

Android HTTP接続が拒否されました

AndroidデバイスからWiFi経由で、ブラウザーまたはcurlを使用してラップトップからアクセスできるローカルWebサーバーにアクセスしようとしています。 Androidデバイスブラウザーでサーバーにアクセスすることもできます。

サーバーにアクセスするために使用しているコードは、"connection refused"例外を生成します。

これはコードです:

public void getController1() {
  HttpClient httpclient = new DefaultHttpClient();
  HttpGet httpget = new HttpGet("http://192.168.1.169:8000");
  HttpResponse response = null;
  System.out.println(httpget.toString());
  try {
    response= httpclient.execute(httpget);
    txtViewStatus.setText("Controller 1 - OK"+response);
  } catch(Exception e) {
    e.printStackTrace();
    txtViewStatus.setText("Controller 1 - Error"+e);
  }
}
24
Tori

問題が解決しました。問題はマニフェストファイルの破損でした。許可行を削除して再入力しましたが、問題はなくなりました

25
Tori

許可がありませんでした。マニフェストファイルを確認する必要があります

 <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
 <uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE"/>
 <uses-permission Android:name="Android.permission.INTERNET"></uses-permission>
 <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"></uses-permission>
 <uses-permission Android:name="Android.permission.READ_PHONE_STATE"></uses-permission>    
 <uses-permission Android:name="Android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
8
star18bit

インターネット接続の強度を確認してください。

私の場合、ネットワーク接続が低いため、このエラーがスローされます。

4
Sampath Kumar

これをマニフェストファイルに貼り付けます。

<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
3
kaub0st3r

プロキシを使用しているからでしょうか?プロキシの問題は Android HttpClientはシステムプロキシ設定を使用しない で説明されています(CommonsWareによる回答を参照)。

Android deviceでPCスイートを有効にする必要があります。

1: set http url in Android app e.g ("http://192.168.1.100:81/api/droid/getdata")
laptop or pc wifi ip is (192.168.1.100)
2: connect Android device to pc or laptop in usb port
3: goto this setting in Android device setting -> more -> Tethering and portable hotspot -> pc suite(HiSuite)
4: run Android app

この仕事はいい

0
HamidReza