2

Android 開発は初めてで、サーバーに接続して Android アクティビティの情報または値を取得する必要があります。Android アクティビティから Java Web サービスを呼び出す/使用する方法の実例を提供してください。

これが私がこれまでに行ったことです。

Android アクティビティを作成しました。指定された半径の Area を計算し、値を返すクラスを eclipse で作成しました。上記のクラスの Web サービスを作成し、WebService Explorer を使用してテストしたところ、動作しました。Web サービスは、要求にポート 11144 を使用し、応答に 8080 を使用します。

私が持っている質問は次のとおりです: wsdl を使用するか、Java クライアントをスタブとして使用しますか? スタブを使用する必要がある場合、それは他の Java クラスと同様に別のインポートのようなものですか?

よろしくお願いします。

4

2 に答える 2

0

この次のすべてのメソッドを使用して、Android で Web サービスを呼び出すことができます

public String postData(String result, JSONObject obj) {
            // Create a new HttpClient and Post Header
            String InsertTransactionResult = null;
            HttpClient httpclient = new DefaultHttpClient();
            HttpParams myParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(myParams, 1000);
            HttpConnectionParams.setSoTimeout(myParams, 1000);

            try {

                HttpPost httppost = new HttpPost(result.toString());
                httppost.setHeader("Content-type", "application/json");
                StringEntity se = new StringEntity(obj.toString());
                se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                        "application/json"));
                httppost.setEntity(se);

                HttpResponse response = httpclient.execute(httppost);
                InsertTransactionResult = EntityUtils
                        .toString(response.getEntity());

            } catch (ClientProtocolException e) {

            } catch (IOException e) {
            }
            return InsertTransactionResult;
        }

        public String putData(String result, JSONObject obj) {

            // Create a new HttpClient and Put Header

            String UpdateTransactionResult = null;
            HttpClient httpclient = new DefaultHttpClient();
            HttpParams myParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(myParams, 10000);
            HttpConnectionParams.setSoTimeout(myParams, 10000);

            try {

                HttpPut httpPut = new HttpPut(result.toString());
                httpPut.setHeader("Content-type", "application/json");
                StringEntity se = new StringEntity(obj.toString());
                se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                        "application/json"));
                httpPut.setEntity(se);

                HttpResponse response = httpclient.execute(httpPut);
                UpdateTransactionResult = EntityUtils
                        .toString(response.getEntity());

            } catch (ClientProtocolException e) {

            } catch (IOException e) {
            }
            return UpdateTransactionResult;

        }


        public String deleteRecord(String result) {

            // Create a new HttpClient and Get Header

            StringBuilder builder = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpDelete httpDelete = new HttpDelete(result.toString());

            try {
                HttpParams myParams = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(myParams, 10000);
                HttpConnectionParams.setSoTimeout(myParams, 0);
                HttpResponse response = client.execute(httpDelete);
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();

                System.out.println(response.toString());
                if (statusCode == 200) {
                    HttpEntity entity = response.getEntity();
                    InputStream content = entity.getContent();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(content));
                    String line;
                    while ((line = reader.readLine()) != null) {
                        builder.append(line);
                    }
                } else {
                    Log.e(LoginActivity.class.toString(), "Failed to Authenticate");
                }

            } catch (ClientProtocolException e) {

            } catch (IOException e) {
                System.out.println(e);
            }
            return builder.toString();
        }



    public String getMethod(String result) {

            // Create a new HttpClient and Get Header

            StringBuilder builder = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(result.toString());

            try {
                HttpParams myParams = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(myParams, 0);
                HttpConnectionParams.setSoTimeout(myParams, 0);
                HttpResponse response = client.execute(httpGet);
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();

                System.out.println(response.toString());
                if (statusCode == 200) {
                    HttpEntity entity = response.getEntity();
                    InputStream content = entity.getContent();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(content));
                    String line;
                    while ((line = reader.readLine()) != null) {
                        builder.append(line);
                    }
                } else {
                    Log.e(LoginActivity.class.toString(), "Failed to Authenticate");
                }

            } catch (ClientProtocolException e) {
            } catch (IOException e) {
            }
            return builder.toString();
        }
于 2012-05-16T15:35:29.390 に答える