从Android的.NET Web服务获取名单 [英] Get List from .net Web Service on Android
问题描述
我已经.NET Web服务,我想使用它的机器人。此Web服务的方法返回列表(串),我没有得到回应的机器人。我能做什么 ?这里是code ..
我工作的这3天,我没有找到任何解决办法呢。
总之,我需要从.NET Web服务的一些清单,并添加此列表的项目微调。请帮我。
公共类MainActivity延伸活动{
私人微调myspinner;
私有静态最后弦乐METHOD_NAME =Sektorler;
私有静态最后弦乐NAMESPACE =http://tempuri.org/;
私有静态最后弦乐SOAP_ACTION =http://tempuri.org/Sektorler;
私有静态最后字符串的URL =http://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 =http://tempuri.org/;
私有静态最后弦乐SOAP_ACTION =http://tempuri.org/Sektorler;
私有静态最后字符串的URL =http://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;
让我们来看看这个code,这是真的;
SoapObject响应=(SoapObject)envelope.getResponse();
最后有关于它的一些伎俩。
- 首先从项目中删除ksoap2 jar文件。
- 保存并关闭Eclipse。
- 然后复制ksoap2 jar文件到你的工作区文件夹。
- 打开项目文件夹,单击库文件夹,然后将其粘贴。
-
再次打开Eclipse和运行项目!
私人微调myspinner; 私有静态最后弦乐METHOD_NAME =Sektorler; 私有静态最后弦乐NAMESPACE =http://tempuri.org; 私有静态最后弦乐SOAP_ACTION =http://tempuri.org/Sektorler; 私有静态最后字符串的URL =http://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); }
这篇关于从Android的.NET Web服务获取名单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!