完整代码如下
/** 接口target url */
private static final String TARGET_URL = "http://duanxin.51fzh.com:5566/XjxSendMsg.asmx?op=ImmediatelySendByMS";
/** 接口xml命名空间*/
private static final String NAMESPACE_URI = "http://tempuri.org/";
/** 短信接口地址 */
private static final String MSG_URL = "http://duanxin.51fzh.com:5566/";
/** 请求调用的方法名称 */
private static final String METHOD_NAME = "ImmediatelySendByMS";
/** 输入参数sendSys为固定值xjxrzweb */
private static final String SEND_SYS = "xjxrzweb";
/** 发送用户:默认系统 */
private static final String SEND_USER = "系统";
/**
* 请求短信接口,并返回调用信息
*
* @param phoneNumber
* 手机号码
* @param content
* 模板短信占位符的值,例如@1@=abc,
* 如果后期有其他模板需要两个输入参数 就是"@1@=abc,@2@=def"
* @param templateNo
* 模板短信编号
* @return String success:发送成功 fail:发送失败
*/
public static String requestService(String phoneNumber, String content,
String templateNo) {
String result = "";
try {
URL url = new URL(MSG_URL);
// 构造Call对象
Call call = new Call();
call.setTargetObjectURI(TARGET_URL);
call.setMethodName(METHOD_NAME);
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// 参数传递
call.setParams(getParameter(phoneNumber, content, templateNo));
// 发出调用
Response resp = call.invoke(url, "");
// 检查应答
if (!resp.generatedFault()) {
Parameter ret = resp.getReturnValue();
result = ret.getValue().toString();
} else {
Fault fault = resp.getFault();
System.out.println(" Fault Code = " + fault.getFaultCode());
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 参数组织
* @param phoneNumber
* 手机号码
* @param content
* 模板短信占位符的值,例如@1@=abc,
* 如果后期有其他模板需要两个输入参数 就是"@1@=abc,@2@=def"
* @param templateNo
* 模板短信编号
* @return Vector<Parameter>
* 线程安全性参数结合
*/
private static Vector<Parameter> getParameter(String phoneNumber, String content,
String templateNo) {
Vector<Parameter> params = new Vector<Parameter>();
params.addElement(new Parameter("phoneNumber", String.class,
phoneNumber, null));
params.addElement(new Parameter("content", String.class, content,
null));
params.addElement(new Parameter("sendSys", String.class, SEND_SYS,
null));
params.addElement(new Parameter("sendUser", String.class, SEND_USER,
null));
params.addElement(new Parameter("templateNo", String.class,
templateNo, null));
return params;
}
public static void main(String[] args) {
System.out.println(requestService("14751608125", "@1@=12121",
"JSM41168-0001"));
}
错误:
SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type "text/html", must be: "text/xml".
试了很多方法都没有用