Вопрос по web-services, eclipse, android – веб-сервис в андроид / затмение

-1

Мне нужно использовать веб-сервис из Android / Eclipse методом мыла.

т.е. я должен дать вход и показать соответствующий результат от веб-службы в соответствии с пользовательским вводом. Как это сделать?

java class

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();
       }
     }
       });
    } 
 }

web method

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 [email protected] (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

большое спасибо

Минутку, я отредактирую свой вопрос тем, что я уже сделал Rohith
+ 1 Самир и -1 @ Рохит за неисследование Paresh Mayani

Ваш Ответ

2   ответа
4

SoapPrimitive results = (SoapPrimitive)envelope.getResponse(); вместо тогоSoapObject result = (SoapObject)envelope.bodyIn; потому что ваш веб-сервис возвращаетstring неobject.

Если я последую твоему ответу. эти строки показывают ошибку txtCel.setText (result.getProperty (0) .toString ()); что я могу сделат Rohith
удалите getProperty (0) и попробуйте с помощью result.toString () himanshu
Он показывает тот же результат, что и "Имя не найдено" ... я думаю, что проблема с веб-методом, был ли мой источник веб-метода правильным? Rohith
Вы добавили [WebMethod] непосредственно перед GetName () в веб-сервисе? и опубликуйте данные logcat. himanshu
Да, я добавил источник веб-метода с помощью logcat, пожалуйста, посетите мой вопрос еще раз ... Rohith
1

т. Е. Код, который вы написали на Android, верен. Просто убедитесь, чтоействие @soap, метод, URl и пространство имен Вы написали правильно. Если у вас есть какие-либо сомнения относительно этого или других сомнений, вы можете написать мне.

Вот базовое руководство по Android для доступа к веб-сервису в Android Basic Ksoap Учебник для Android

и для создания веб-службы в Java используйте этот учебник Как создать веб-сервис на основе Java

i checkout Мыльные действия, имя метода, URL и пространство имен ... все в порядке ... Rohith
Я думаю, что моя проблема связана с веб-методом .... пожалуйста, обратитесь к источнику веб-метода Rohith
Код, который вам дают, пишите. Просто убедитесь, что вы правильно развернули этот сервис. Пожалуйста, следуйте ссылке, указанной в моем ответе, чтобы проверить веб-сервис. И я уже создал веб-сервис, используя эту ссылку и он работает. Если у вас все еще есть проблема тогда напиши мне. Sachin D

Похожие вопросы