1

次のコードを使用して、文字列「true」または「false」を返し、2 つのパラメーターを受け取る Web サービスのメソッドを呼び出します。

String isLogedin = readTwitterFeed();
public String readTwitterFeed() {

        String Result = null;

        StringBuilder URL = new StringBuilder();

        URL.append("http://localhost:1539/WCFService1/Service.svc/Login/");
        URL.append(username.getText());
        URL.append("/");
        URL.append(password.getText());

        ///////////////////////////// 
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(
                URL.toString());




        try {
            HttpResponse response = client.execute(httpGet);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(content));

                StringBuilder builder = null ;
                String line = null;
                while ((line = reader.readLine()) != null) {
                    builder.append(line);
                }

                Result = builder.toString() ;


            } else {
                 Result = "error";
            }
        } catch (ClientProtocolException e) {
             Result = "error";
            e.printStackTrace();
        } catch (IOException e) {
             Result = "error";
            e.printStackTrace();
        }
        return Result;
    }

ただし、返される文字列は常に空です

なぜデータが返されないのか、エラーは表示されません(テキストビューに戻り値を表示します)、インターネットの許可をそのように設定します

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

そして、サービスが実行されていることを確認してください

4

1 に答える 1

1

Localhost127.0.0.1は独自のループバック インターフェイスです。つまり、またはAndroid emulated device'sを使用して、(コンピュータではなく) Android エミュレートされたデバイスに接続します。開発マシンにアクセスしようとしている場合は、localhost127.0.0.110.0.2.2.

コード内で初期化しなかったことが 1 つあります。StringBuilder builder

のように初期化しますStringBuilder builder = new StringBuilder();

于 2012-05-20T16:47:32.540 に答える