【问题标题】:How do I call a .NET webmethod?如何调用 .NET 网络方法?
【发布时间】:2011-12-09 04:06:02
【问题描述】:

首先感谢您的所有回答,这个主题可能已经关闭,因为我已经做了我想要的。我在下面提到了如何调用 .NET webmethod。

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

【问题讨论】:

  • 如果您可以放弃使用 DataTable 并使用自己的对象和集合,我可以向您发送调用 webMethod 和使用 json 的示例
  • KusmanCustomAdapter 怎么样?它会填充数据吗?
  • @breceivemail 不是真的,我需要调用这个 webmethod :( 我知道你的意思,我在创建 web 服务时使用它,但这次我必须使用这种方式。
  • @kisp KusmanCustomAdapter.DataTable 我可以发送一个数据表,但在 .Net 端它有 0 行。如何发送带有行的数据表?

标签: java android .net soap dataset


【解决方案1】:

如果你只需要一个调用webservice方法的方法,使用这个:

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

【讨论】:

  • 这不是我想做的。我需要制作自己的肥皂信封结构。我不能用这种方式发送数据集兄弟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多