-1

android/eclipseからsoapメソッドでWebサービスを利用する必要があります。

つまり、ユーザーの入力に従って、入力を行い、Webサービスから適切な結果を表示する必要があります。これを行うにはどうすればよいですか?

javaクラス

public class Demo_webserviceActivity extends Activity
{ 
/** Called when the activity is first created. */

   private static String NAMESPACE = "http://tempuri.org/";
   private static String METHOD_NAME = "GetName";
    private static String SOAP_ACTION = "http://tempuri.org/GetName";
    private static String URL = "http://122.248.240.105:234/Service1.asmx";

   Button btnFar;
   EditText txtFar,txtCel;


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

   btnFar = (Button)findViewById(R.id.btnFar);

   txtFar = (EditText)findViewById(R.id.txtFar);
   txtCel = (EditText)findViewById(R.id.txtCel);

   btnFar.setOnClickListener(new View.OnClickListener()
   {

   public void onClick(View v)
   {
     //Initialize soap request + add parameters
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);       

     //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_ACTION, 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_SHORT).show();
         }
    }
    catch (Exception e)
    {
       e.printStackTrace();
       }
     }
       });
    } 
 }

ウェブメソッド

public class GetName 
{
public String GetName(String Fahrenheit){
    return(Fahrenheit);
}
}

logcat

06-12 17:40:00.322: W/InputManagerService(59): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@44f60478 (uid=10040 pid=345)
 06-12 17:40:00.352: W/IInputConnectionWrapper(345): showStatusIcon on inactive InputConnection
 06-12 17:40:07.292: D/AndroidRuntime(352): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
06-12 17:40:07.292: D/AndroidRuntime(352): CheckJNI is ON
06-12 17:40:07.477: D/AndroidRuntime(352): --- registering native functions ---
06-12 17:40:08.062: D/AndroidRuntime(352): Shutting down VM
06-12 17:40:08.062: D/dalvikvm(352): Debugger has detached; object registry had 1 entries
06-12 17:40:08.102: I/AndroidRuntime(352): NOTE: attach of thread 'Binder Thread #3' failed
06-12 17:40:08.502: D/AndroidRuntime(360): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
06-12 17:40:08.502: D/AndroidRuntime(360): CheckJNI is ON
06-12 17:40:08.633: D/AndroidRuntime(360): --- registering native functions ---
06-12 17:40:09.152: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.demo.webser/.Demo_webserviceActivity }
06-12 17:40:09.222: D/AndroidRuntime(360): Shutting down VM
06-12 17:40:09.222: D/dalvikvm(360): Debugger has detached; object registry had 1 entries
06-12 17:40:09.252: I/AndroidRuntime(360): NOTE: attach of thread 'Binder Thread #3' failed

どうもありがとう

4

2 に答える 2

4

Webサービスがnotを返すため、SoapPrimitive results = (SoapPrimitive)envelope.getResponse();代わりにを使用する必要があります。 SoapObject result = (SoapObject)envelope.bodyIn;stringobject

于 2012-06-12T11:37:47.183 に答える
1

あなたは正しい方向に進んでいます、すなわちあなたがアンドロイドで書いたコードは正しいです。あなたが書いた石鹸のアクション、メソッド、URlと名前空間が正しいことを確認してください。これについて疑問がある場合、またはその他の疑問がある場合は、私に書いてください。

ここでは、Androidの基本的なksoapAndroidチュートリアルでWebサービスにアクセスするための基本的なAndroidチュートリアル

JavaでWebサービスを作成するには、このチュートリアルを使用してください。JavaベースのWebサービスを作成する方法

于 2012-06-12T11:37:33.753 に答える