从Android的.NET Web服务获取名单名单、Android、NET、Web

2023-09-05 01:34:56 作者:风吹内裤丶蛋蛋凉

我已经.NET Web服务,我想使用它的机器人。此Web服务的方法返回列表(串),我没有得到回应的机器人。我能做什么 ?这里是code ..

我工作的这3天,我没有找到任何解决办法呢。

总之,我需要从.NET Web服务的一些清单,并添加此列表的项目微调。请帮我。

 公共类MainActivity延伸活动{

    私人微调myspinner;
    私有静态最后弦乐METHOD_NAME =Sektorler;
    私有静态最后弦乐NAMESPACE =htt​​p://tempuri.org/;
    私有静态最后弦乐SOAP_ACTION =htt​​p://tempuri.org/Sektorler;
    私有静态最后字符串的URL =htt​​p://www.xxxxxxxxxx.com/webservice1.asmx;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        myspinner =(微调)findViewById(R.id.spinner1);
        ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(这一点,R.layout.activity_main,SektorDoldur());
        myspinner.setAdapter(适配器);
    }


    私人的ArrayList<字符串> SektorDoldur(){

        ArrayList的<字符串> sektorler =新的ArrayList<字符串>();

        SoapObject请求=新SoapObject(命名空间METHOD_NAME);
        SoapSerializationEnvelope包=新SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = TRUE;
        envelope.setOutputSoapObject(要求);
        HttpTransportSE androidHttpTransport =新HttpTransportSE(URL);
        androidHttpTransport.debug = TRUE;

        尝试 {

       androidHttpTransport.call(SOAP_ACTION,包);
       SoapObject响应=(SoapObject)envelope.getResponse();

       如果(response.hasProperty(字符串)){

       如果(response.getPropertyAsString(字符串)== NULL){
    //做一点事
       } 其他 {

           的for(int i = 0; I< response.getPropertyCount();我++){
// sektorler.add(我,response.getPropertyAsString(字符串));
               sektorler.add(response.getPropertyAsString(ⅰ));
           }
        }

}

        }赶上(例外五){

            e.printStackTrace();

        }

        返回sektorler;

    }
 

同时我想这code,但它不能正常工作。

 公共类MainActivity延伸活动{

    私人微调myspinner;
    私有静态最后弦乐METHOD_NAME =Sektorler;
    私有静态最后弦乐NAMESPACE =htt​​p://tempuri.org/;
    私有静态最后弦乐SOAP_ACTION =htt​​p://tempuri.org/Sektorler;
    私有静态最后字符串的URL =htt​​p://www.xxxxxxxx.com/webservice1.asmx;
    私有String [] denemeList;

    私有String [] SektorDoldur(){
        SoapObject请求=新SoapObject(命名空间METHOD_NAME);
        SoapSerializationEnvelope包=新SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = TRUE;
        envelope.setOutputSoapObject(要求);
        HttpTransportSE androidHttpTransport =新HttpTransportSE(URL);
        androidHttpTransport.debug = TRUE;

        尝试 {

       androidHttpTransport.call(SOAP_ACTION,包);
       SoapObject响应=(SoapObject)envelope.bodyIn;
       denemeList =新的String [response.getPropertyCount()];

       的for(int i = 0; I< response.getPropertyCount();我++){
           denemeList [I] = response.getPropertyAsString(ⅰ)的ToString();
       }
}
        赶上(例外五){
            e.printStackTrace();
        }
        返回denemeList;
    }


    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        SektorDoldur();

        myspinner =(微调)findViewById(R.id.spinner1);
        ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(这一点,R.layout.activity_main,denemeList);
        myspinner.setAdapter(适配器);

    }
 

解决方案

我好像明白了!

这是假的;

  SoapObject响应=(SoapObject)envelope.bodyIn;
 
android下的web服务器

让我们来看看这个code,这是真的;

  SoapObject响应=(SoapObject)envelope.getResponse();
 

最后有关于它的一些伎俩。

首先从项目中删除ksoap2 jar文件。 保存并关闭Eclipse。 然后复制ksoap2 jar文件到你的工作区文件夹。 打开项目文件夹,单击库文件夹,然后将其粘贴。

再次打开Eclipse和运行项目!

 私人微调myspinner;
    私有静态最后弦乐METHOD_NAME =Sektorler;
    私有静态最后弦乐NAMESPACE =htt​​p://tempuri.org;
    私有静态最后弦乐SOAP_ACTION =htt​​p://tempuri.org/Sektorler;
    私有静态最后字符串的URL =htt​​p://www.xxxxxxxxxx.com/webservice1.asmx;
    私有String [] denemeList;

    私人无效SektorDoldur(){

        SoapObject请求=新SoapObject(命名空间METHOD_NAME);
        SoapSerializationEnvelope包=新SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = TRUE;
        envelope.setOutputSoapObject(要求);
        HttpTransportSE androidHttpTransport =新HttpTransportSE(URL);
        androidHttpTransport.debug = TRUE;

        尝试 {

       androidHttpTransport.call(SOAP_ACTION,包);
       SoapObject响应=(SoapObject)envelope.getResponse();
       denemeList =新的String [response.getPropertyCount()];

      的for(int i = 0; I< response.getPropertyCount();我++){

           denemeList [I] = response.getPropertyAsString(ⅰ)的ToString();

      }
}
        赶上(例外五){
            e.printStackTrace();
        }
    }


    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        SektorDoldur();

        myspinner =(微调)findViewById(R.id.spinner1);
        ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(这一点,android.R.layout.simple_spinner_item,denemeList);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        myspinner.setAdapter(适配器);

    }
 

I have .net Web Service and I want to use it on android. This web service's methods return List(Of String) and I didn't get response on android. What can I do ? Here is the code..

I'm working on it for 3 days and I didn't find any solution yet.

In short, I need some list from .net web service and add this list's items to spinner. Please help me.

public class MainActivity extends Activity {

    private Spinner myspinner;
    private static final String METHOD_NAME = "Sektorler";  
    private static final String NAMESPACE = "http://tempuri.org/";  
    private static final String SOAP_ACTION = "http://tempuri.org/Sektorler";
    private static final String URL = "http://www.xxxxxxxxxx.com/webservice1.asmx";

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

        myspinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.activity_main , SektorDoldur());
        myspinner.setAdapter(adapter);
    }


    private ArrayList<String> SektorDoldur() {

        ArrayList<String> sektorler = new ArrayList<String>();

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;     
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug = true;

        try {

       androidHttpTransport.call(SOAP_ACTION, envelope);
       SoapObject response = (SoapObject) envelope.getResponse();

       if (response.hasProperty("String")) {

       if (response.getPropertyAsString("String") == null) {
    //do something
       } else {

           for(int i=0;i<response.getPropertyCount();i++){
//             sektorler.add(i, response.getPropertyAsString("String"));
               sektorler.add(response.getPropertyAsString(i));
           }
        }

}

        } catch (Exception e) {

            e.printStackTrace();

        }

        return sektorler;

    }

Also I'm trying this code but it doesn't work.

public class MainActivity extends Activity {

    private Spinner myspinner;
    private static final String METHOD_NAME = "Sektorler";  
    private static final String NAMESPACE = "http://tempuri.org/";  
    private static final String SOAP_ACTION = "http://tempuri.org/Sektorler";
    private static final String URL = "http://www.xxxxxxxx.com/webservice1.asmx";
    private String[] denemeList;

    private String[] SektorDoldur(){
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;     
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug = true;

        try {

       androidHttpTransport.call(SOAP_ACTION, envelope);
       SoapObject response = (SoapObject) envelope.bodyIn;
       denemeList = new String[response.getPropertyCount()];

       for(int i=0;i<response.getPropertyCount();i++){ 
           denemeList[i] = response.getPropertyAsString(i).toString();
       }      
} 
        catch (Exception e) {           
            e.printStackTrace();
        }
        return denemeList;      
    }


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

        SektorDoldur();

        myspinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.activity_main , denemeList);
        myspinner.setAdapter(adapter);

    }

解决方案

I got it !!

this is false;

SoapObject response = (SoapObject) envelope.bodyIn;

Lets see this code, it's true;

SoapObject response = (SoapObject) envelope.getResponse();

Finally there are some trick about it.

First of all delete ksoap2 jar file from your project. Save it and close Eclipse. Then copy ksoap2 jar file, go to your workspace folder. Open your project folder, click "libs" folder and paste it.

Open again Eclipse and Run Project!!

    private Spinner myspinner;
    private static final String METHOD_NAME = "Sektorler";  
    private static final String NAMESPACE = "http://tempuri.org";   
    private static final String SOAP_ACTION = "http://tempuri.org/Sektorler";
    private static final String URL = "http://www.xxxxxxxxxx.com/webservice1.asmx";
    private String[] denemeList;

    private void SektorDoldur(){

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;     
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug = true;

        try {

       androidHttpTransport.call(SOAP_ACTION, envelope);
       SoapObject response = (SoapObject) envelope.getResponse();
       denemeList = new String[response.getPropertyCount()];

      for(int i=0;i<response.getPropertyCount();i++){ 

           denemeList[i] = response.getPropertyAsString(i).toString();

      }      
} 
        catch (Exception e) {           
            e.printStackTrace();
        }       
    }


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

        SektorDoldur();

        myspinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, denemeList);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        myspinner.setAdapter(adapter);

    }