JAVA调用C#编纂的WebService
JAVA调用C#编写的WebService
package com.kingdee.logincheck; public class InvokeLoginWebService { private static final String SOAP_URL = "http://192.168.0.1/Ws404/WebServiceCore.asmx"; private static final String SOAP_ACTION = "http://tempuri.org/Login"; public static String[] login(String userName, String password) throws Exception { java.net.URL url = new java.net.URL(SOAP_URL); java.net.URLConnection connection = url.openConnection(); java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connection; byte[] b = getInputXML(userName, password).getBytes(); // Set the appropriate HTTP parameters. httpConn.setRequestProperty("Content-Length", String.valueOf(b.length)); httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); httpConn.setRequestProperty("SOAPAction", SOAP_ACTION); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true); httpConn.setDoInput(true); java.io.OutputStream outStm = httpConn.getOutputStream(); outStm.write(b); outStm.close(); java.io.InputStreamReader isrStm = new java.io.InputStreamReader( httpConn.getInputStream()); java.io.BufferedReader inStm = new java.io.BufferedReader(isrStm); String inputLine; inputLine = inStm.readLine(); inStm.close(); if (inputLine == null) { return null; } String res = inputLine.substring(inputLine.indexOf("<Result>") + "<Result>".length(), inputLine.indexOf("</Result>")); String token = ""; if (inputLine.indexOf("<Token>") >= 0) { token = inputLine.substring(inputLine.indexOf("<Token>") + "<Token>".length(), inputLine.indexOf("</Token>")); } return new String[] { res, token }; } private static String getInputXML(String userName, String password) { StringBuffer sb = new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"); sb.append("<soap:Body><Login xmlns=\"http://tempuri.org/\">"); sb.append("<userName>").append(userName).append("</userName>"); sb.append("<password>").append(password).append("</password>"); sb.append("</Login></soap:Body></soap:Envelope>"); return sb.toString(); } }