2011-10-17 34 views
-1

首先感谢你所有的答案,这个问题可能会被关闭,因为我做了我想要的东西。我提到了如何在下面调用.NET webmethod。如何调用.NET webmethod?

http://aaarkonusurum.blogspot.com/2011/10/android-ile-dataset-donen-bir-net.html

+0

如果你能放弃使用数据表和使用你自己的对象和集合我可以给你发一个调用webMethod的样本并使用json – breceivemail

+0

'KusmanCustomAdapter'怎么样?它是否填充数据? – kisp

+0

@breceivemail不是真的,我需要调用这个webmethod :(我知道你的意思,我创建web服务时使用它,但这次我必须使用这种方式。 –

回答

0

如果你只需要调用一个Web服务方法的方法,使用此:

public static SoapPrimitive callWebServiceMethod(String url, 
      String namespace, String methodName, 
      HashMap<String, Object> parameters, String soapAction) 
      throws IOException, XmlPullParserException, SoapFault { 

     SoapObject request = new SoapObject(namespace, methodName); 

     if (parameters != null) { 
      String[] keys = new String[0]; 
      keys = (String[]) parameters.keySet().toArray(keys); 
      Object[] vals = (Object[]) parameters.values().toArray(); 

      for (int i = 0; i < parameters.size(); i++) { 
       request.addProperty(keys[i], vals[i]); 
      } 
     } 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
        SoapEnvelope.VER11); 
     envelope.dotNet = true; 

     envelope.setOutputSoapObject(request); 
     HttpTransportSE androidHttpTransport = new HttpTransportSE(url, 
       60 * 1000); 

     androidHttpTransport.call(soapAction, envelope); 
     return (SoapPrimitive) envelope.getResponse(); 
    } 

,并在您的活动:

private static final String NAMESPACE = "http://tempuri.org/"; 
private static final String METHOD_NAME = "MethodName"; 
private static final String SOAP_ACTION = "http://tempuri.org/MethodName"; 

     String url = "http://..."; 

     HashMap<String, Object> parameters = new HashMap<String, Object>(); 
     parameters.put("param1", param1); 
     parameters.put("param2", param2); 
     //... 

     SoapPrimitive response = callWebServiceMethod(url, 
       NAMESPACE, METHOD_NAM, parameters, 
       SOAP_ACTION); 

     String webServiceResult = response.toString(); 
+0

这不是我想做的事情,我需要制作自己的肥皂信封结构,我不能用这种方式发送数据集。 –