1

私はAndroidを初めて使用し、これが私の最初のアプリケーションです。インターネットに接続して会社のサーバーからJSONをダウンロードしようとしていますが、入力ストリームを取得できません。このコードを確認して、サポートを提供してください。

URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());

URLは私が多くのURLをテストした問題ではありません。このコードでは、最後の行でエラーが発生します。開発マシンでオープン接続(プロキシのみのファイアウォールなし)を使用しており、エミュレーターブラウザはインターネットにアクセスできます。

すでに追加しました

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

マニフェストファイルのuses-sdkタグと並行しています。

4

3 に答える 3

1

入力ストリームに影響を与える前に、受け入れる準備ができているデータの種類をサーバーに提案してみてください.jsonの場合は、アプリケーション/ jsonのようなタイプのデータを受け入れることをサーバーに知らせてください.

httpcon = (HttpURLConnection) ((new URL(http://www.android.com/).openConnection()));
httpcon.setRequestProperty("Accept", "application/json");

実行したい操作、GETまたはPOSTを忘れないでください

httpcon.setRequestMethod("POST"); or  httpcon.setRequestMethod("GET");

サーバーが何を言おうとしているのかを知るために、表示されているエラー/メッセージをお知らせください。

于 2012-12-24T06:40:31.793 に答える
0

これを使って。

URL url = new URL("http://www.google.com/");
   HttpURLConnection myConnection = (HttpURLConnection) url.openConnection();
   try {
     InputStream in = new BufferedInputStream(myConnection.getInputStream());
     readStream(in);
    finally {
     myConnection.disconnect();
   }
 }

マニフェスト ファイルにもユーザー権限を追加します。

于 2012-12-24T06:35:22.930 に答える
0

これが私の作業コードの例です..

AsyncTaskクラスで以下のコードを実行し、URLを渡すだけで、サーバーからの応答が返されます。

public String getResult(String url) {

        Log.v(TAG, "Final Requsting URL is : :"+url);

        String line = "";
        String responseData = null;

        try {
            StringBuilder sb = new StringBuilder();
            String x = "";
            URL httpurl = new URL(url);
            URLConnection  tc= httpurl.openConnection();


            /*URLConnection tc = twitter.openConnection();
            HttpURLConnection httpConnection = (HttpURLConnection) tc;
            httpConnection.setRequestMethod("POST");*/
            //tc.setRe
            //tc.setDoOutput(false);

            BufferedReader in = new BufferedReader(
                           new InputStreamReader(tc.getInputStream()));

            while ((line = in.readLine()) != null) {
                sb.append(line + "\n");
                x = sb.toString();
            }
            responseData = new String(x);
        }
        catch (UnknownHostException uh){            
            Log.v("NewWebHelper", "Unknown host :");
            uh.printStackTrace();
        }
       catch (FileNotFoundException e) {
           Log.v("NewWebHelper", "FileNotFoundException :");
            e.printStackTrace();
         }
        catch (IOException e) {
            Log.v("NewWebHelper", "IOException :");
            e.printStackTrace();
        }
      catch (Exception e) {
          Log.v("NewWebHelper", "Exception :");
            e.printStackTrace();
        }
        return responseData;
    }

また、この方法でマニフェスト ファイルに以下のインターネット アクセス許可が必要であることを確認してください。

<uses-permission android:name="android.permission.INTERNET"/>

これについてあなたのコメントを教えてください!!

于 2012-12-24T06:37:53.373 に答える