2012-03-25 24 views
1

私は働いている.Net WCF HTTPサービスがあります。 I.E、FireFox、またはGoogle ChromeブラウザにURLを入力すると、正しいストリームが返されます。しかし、私はアンドロイドアプリ(Eclipseで実行)で同じサービスにアクセスしようとすると、 "Permission Denied"という詳細メッセージでsocketExceptionが発生します。サービスはVisual Studioウェブホスティング業者のマシン上で実行されており、クライアントは自分のマシン上のアンドロイドエミュレータで実行されています。Androidからの作業HTTPServiceへのアクセスに問題があります

例外を取得する行は、次のとおりです。 InputStream in = new BufferedInputStream(urlConnection.getInputStream());

(私はURLはwww.android.comあるこの同じプログラムの以前の記事を持っていると私は、「無効なURL」を取得しています)

誰でもブラウザはそれで問題がない理由の手掛かりを持っている可能性がありますandroidクライアントが許可を拒否されていますか? おかげで、 ゲイリー

 HttpURLConnection urlConnection = null; 

     try 
     { 
      URL url = new URL("http://localhost:8080/TeamTask/Tasks"); 
      urlConnection = (HttpURLConnection) url.openConnection(); 
      InputStream in = new BufferedInputStream(urlConnection.getInputStream());  
      readStream(in); 
     } 
     catch (MalformedURLException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 

答えて

3

拒否された権限が最も可能性の高いあなたのAndroidManifest.xmlファイルにパーミッションを持っていないことが原因です。

また、私はそれをテストしていませんが、 "localhost"を使用することはエミュレータ上で実行されているため、VMホストがlocalhostを使用してVMを起動しているため、ホストマシンではなく、マシンのIPアドレスを入力します。私は現在、同じネットワーク上の別のマシンからいくつかのAndroid HTTP呼び出しをテストしています。私は単にサーバーのローカルIPを入力します。

EDIT:

public String getURLcontents(URL url) throws IOException{ 
    String response = "failed"; 
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
    Log.v(TAG, "Opening connection: " + url.toString()); 
    try { 
     InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
     response = new Scanner(in).useDelimiter("\\A").next(); 
    } 
    catch (Exception e) { 
     urlConnection.disconnect(); 
     return response = "failed"; 
    } 
    finally { 
     urlConnection.disconnect(); 
     Log.v(TAG, "Closed connection"); 
    } 
    return response; 
} 
+0

TomJ、答えてくれてありがとう:

最後に、ここで私は、単純なHTTP呼び出しを行うために、定期的に使用し、いくつか試してみました、真のコードです。私は今すぐストリームを読むことができるよ。 –

+0

面白い(面白くない)副作用:* test *プロジェクトでHttpUrlConnectionを使用している場合、メインプロジェクトでHttpUrlConnection呼び出しを実行しなくても、* main *プロジェクトにandroid.permission.INTERNETを設定する必要があります。 –

関連する問題