0

Android アプリケーションで Web サービスを実装して使用する方法を学んでいます。Web サービスを使用しているすべてのプロから、どこから始めればよいか、Android アプリケーションを使用するのに最も信頼性が高く効率的な Web サービスの方法またはタイプについて、いくつか提案をお願いできますか?

前もって感謝します。アリ

4

3 に答える 3

3

詳細については、Ksoapを使用してリンクを参照してください。 http://codeoncloud.blogspot.in/2012/04/android-403-webservice-access-tutorial.html

http://codeoncloud.blogspot.in/2012/04/android-web-service-access-tutorial.html

于 2013-01-28T13:44:26.967 に答える
1

このリンクを使用してください http://www.c-sharpcorner.com/UploadFile/88b6e5/how-to-call-web-service-in-android-using-soap/

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Fahrenheit"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/txtFar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Celsius"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/txtCel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btnFar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="Convert To Celsius" />

    <Button
        android:id="@+id/btnCel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="Convert To Fahrenheit" />

</LinearLayout>


<Button
    android:id="@+id/btnClear"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Clear" />

</LinearLayout>

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class WebServiceDemoActivity extends Activity
{
/** Called when the activity is first created. */
  private static String SOAP_ACTION1 = "http://tempuri.org/FahrenheitToCelsius";
  private static String SOAP_ACTION2 = "http://tempuri.org/CelsiusToFahrenheit";
  private static String NAMESPACE = "http://tempuri.org/";
  private static String METHOD_NAME1 = "FahrenheitToCelsius";
  private static String METHOD_NAME2 = "CelsiusToFahrenheit";
  private static String URL =               "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";

  Button btnFar,btnCel,btnClear;
  EditText txtFar,txtCel;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    btnFar = (Button)findViewById(R.id.btnFar);
    btnCel = (Button)findViewById(R.id.btnCel);
    btnClear = (Button)findViewById(R.id.btnClear);
    txtFar = (EditText)findViewById(R.id.txtFar);
    txtCel = (EditText)findViewById(R.id.txtCel);

    btnFar.setOnClickListener(new View.OnClickListener()
    {
              @Override
              public void onClick(View v)
              {
                    //Initialize soap request + add parameters
              SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1);       

              //Use this to add parameters
              request.addProperty("Fahrenheit",txtFar.getText().toString());

              //Declare the version of the SOAP request
              SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

              envelope.setOutputSoapObject(request);
              envelope.dotNet = true;

              try {
                    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

                    //this is the actual part that will call the webservice
                    androidHttpTransport.call(SOAP_ACTION1, envelope);

                    // Get the SoapResult from the envelope body.
                    SoapObject result = (SoapObject)envelope.bodyIn;

                    if(result != null)
                    {
                          //Get the first property and change the label text
                          txtCel.setText(result.getProperty(0).toString());
                    }
                    else
                    {
                          Toast.makeText(getApplicationContext(), "No Response",Toast.LENGTH_LONG).show();
                    }
              } catch (Exception e) {
                    e.printStackTrace();
              }
              }
        });

    btnCel.setOnClickListener(new View.OnClickListener()
    {
              @Override
              public void onClick(View v)
              {
                    //Initialize soap request + add parameters
              SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME2);       

              //Use this to add parameters
              request.addProperty("Celsius",txtCel.getText().toString());

              //Declare the version of the SOAP request
              SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

              envelope.setOutputSoapObject(request);
              envelope.dotNet = true;

              try {
                    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

                    //this is the actual part that will call the webservice
                    androidHttpTransport.call(SOAP_ACTION2, envelope);

                    // Get the SoapResult from the envelope body.
                    SoapObject result = (SoapObject)envelope.bodyIn;

                    if(result != null)
                    {
                          //Get the first property and change the label text
                          txtFar.setText(result.getProperty(0).toString());
                    }
                    else
                    {
                          Toast.makeText(getApplicationContext(), "No Response",Toast.LENGTH_LONG).show();
                    }
              } catch (Exception e) {
                    e.printStackTrace();
              }
              }
        });

    btnClear.setOnClickListener(new View.OnClickListener()
    {
              @Override
              public void onClick(View v)
              {
                    txtCel.setText("");
                    txtFar.setText("");
              }
        });
}

}

于 2013-01-28T13:45:54.767 に答える
0

私が取り組んできたエンタープライズ アプリケーションでは、それらのほとんどが RESTful モバイル サービス層を使用しており、サーバーがアプリケーションの状態を保持する必要がないように設計されています (電話は非常に簡単に接続を失う可能性があるため)。

http://www.ibm.com/developerworks/webservices/library/ws-restful/

RESTful Web サービスのテストと操作に使用できる Chrome 用の優れたプラグインを次に示します。

https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?utm_source=ha-en-na-us-webapp-Advanced%20Rest%20Client%20Application

SOAP も別のオプションで、一部のモバイル アプリケーションでも使用されています。

http://en.wikipedia.org/wiki/SOAP

于 2013-01-28T13:49:47.627 に答える