HTTP调用URL接口时, 参数值必须URL编码后再调用
参数变量 | 说明 |
---|---|
Gbk编码Url | http://gbk.sms.webchinese.cn/ |
Utf-8编码Url | http://utf8.sms.webchinese.cn/ |
Uid | 本站用户名(如您无本站用户名请先注册)[免费注册] |
Key | 注册时填写的接口秘钥(可到用户平台修改接口秘钥)[立刻修改] 如需要加密参数,请把Key变量名改成KeyMD5, KeyMD5=接口秘钥32位MD5加密,大写。 |
smsMob | 目的手机号码(多个手机号请用半角逗号隔开) |
smsText | 短信内容,最多支持300个字,普通短信70个字/条,长短信64个字/条计费 |
发送测试短信请勿输入:短信测试等词语,请直接提交您要发送的短信内容;
接口发送短信时请在内容后加签名:【XX公司或XX网名称】,否者会被屏蔽。
短信签名可在用户平台平台上设置,也可以在短信内容后,直接加入。
短信发送后返回值 | 说 明 |
---|---|
-1 | 没有该用户账户 |
-2 | 接口密钥不正确 [查看密钥] 不是账户登陆密码 |
-21 | MD5接口密钥加密不正确 |
-3 | 短信数量不足 |
-11 | 该用户被禁用 |
-14 | 短信内容出现非法字符 |
-4 | 手机号格式不正确 |
-41 | 手机号码为空 |
-42 | 短信内容为空 |
-51 | 短信签名格式不正确 接口签名格式为:【签名内容】 |
-6 | IP限制 |
大于0 | 短信发送数量 |
JAVA调用
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class SendMsg_webchinese {
public static void main(String[] args)throws Exception
{
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全密码"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","短信内容")};
post.setRequestBody(data);
client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
System.out.println(result); //打印返回消息状态
post.releaseConnection();
}
}
jar包下载
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
说明:如果返回值是200,应该是整段程序代码没有执行完整,只获取到client.executeMethod(post)HTTP状态码的消息;接口是提交成功,没有执行下半部的返回消息代码。
client.executeMethod(post);HTTP状态码参考:http://baike.baidu.com/view/1790469.htm