需要引用axis包
请求xml串:
POST /SMSend/Service.asmx HTTP/1.1
Host: 10.77.5.37Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Insert"
string
string
string
string
string
string
string
string
java
详细代码:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.soap.SOAPException;
import org.apache.axis.encoding.XMLType;
public class TestClient {
public static void main(String [] args) {
try {
String endpoint = "http://10.77.5.37/SMSend/Service.asmx";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/Insert");
call.setOperationName(new QName("http://tempuri.org/","Insert"));
// 由于需要认证,故需要设置调用的用户名和密码。
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("http://tempuri.org/", "MySoapHeader");
soapHeaderElement.setNamespaceURI("http://tempuri.org/");
try
{
soapHeaderElement.addChildElement("Name").setValue("name");
soapHeaderElement.addChildElement("PassWord").setValue("password");
}
catch (SOAPException e)
{
e.printStackTrace();
}
call.addHeader(soapHeaderElement);
call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
call.addParameter(new QName("http://tempuri.org/","UserID"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.addParameter(new QName("http://tempuri.org/","UserName"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.addParameter(new QName("http://tempuri.org/","OrgID"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.addParameter(new QName("http://tempuri.org/","OrgName"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.addParameter(new QName("http://tempuri.org/","MessageInfo"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
call.addParameter(new QName("http://tempuri.org/","ReNum"), XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
String ret = (String)call.invoke(new Object[]{"001", "张三","1002","李四","测试java","13119912020"});// 执行调用
System.out.println(ret);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}