我如何调用.NET web方法?

时间:2011-10-17 09:47:17

标签: java android .net soap dataset

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

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

1 个答案:

答案 0 :(得分: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();
相关问题