目录
一:适应范围
前些天拿到对接公司的一个接口,是用.net编写的webservice接口,接口方会给到接口,方法及参数,例:
二:访问链接
首先拿到这个接口需要先到浏览器直接访问,
能直接访问代表接口是通的(没有类似这样的页面,联系接口方更改),
链接后加?wsdl可查看:
http:// ip(调用时更改) /WebServiceCode/EventAddService.asmx?wsdl
三:编写代码
1:maven文件
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
2:编写java代码:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.json.JSONObject;
public class WorkFlowHandler {
public static String netcs(String Account, String AccountName) {
//ip地址
String url = "http:// ip(调用时更改) /WebServiceCode/EventAddService.asmx";
//命名空间
String targetNamespace = "http://tempuri.org/";
//方法名
String method = "WgySaveEvent";
try {
String endpoint = url;
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
QName opAddEntry = new QName(targetNamespace, method);
call.setOperationName(opAddEntry);
call.setUseSOAPAction(true);
call.addParameter(new QName(targetNamespace, "Account"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(targetNamespace, "AccountName"), XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
call.setSOAPActionURI(targetNamespace + method);
Object[] params = new Object[]{Account, AccountName};
String result = (String) call.invoke(params);
JSONObject jsonObject = new JSONObject(result);
String code = jsonObject.getString("Code");
return code;
} catch (Exception e) {
e.printStackTrace();
}
return "0";
}
}
3:调用:
public static void main(String[] args) throws Exception {
netcs("cs","cs");
}
4:打印:
ps :参数也可以再上方查看,参数可以继续添加