我用 华为-VAS API 和 MMSCSimulation.exe 模拟器 用 apidemo 里的 下发 例 出现错误!麻烦大家帮我看一下java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:***)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:682)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:939)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:367)
at com.huawei.mms.vas.MMSender.sendEx(MMSender.java:158)
at com.huawei.mms.vas.MMSender.send(MMSender.java:300)
at com.sshd.test.SenderTest.main(SenderTest.java:98)模拟器 方Start Server...
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhostapidemo 文件public class SenderTest
{
public static void main(String[] args)
{
//1. 创建MM7消息发送接口
MMSender s = new MMSender(); //2. 设置VASP注册的各种信息
VAS.VASP_ID = "900009"; // 企业代码
VAS.VAS_ID = "9009"; // 服务代码
VAS.Service_Code = "0"; // 业务代码
VAS.VAS_USER = "yourName"; // 链接用户名
VAS.VAS_PASSWORD = "yourPassword"; // 链接密码
VAS.MMSC_URL = "http://localhost:55603/vas"; // MMSC_URL MMSC地址
VAS.From = "13800220002/TYPE=PLMN"; // 增值业务定制方号码 -- 用于计费 --
VAS.To = "13800220002/TYPE=PLMN;13800220002/TYPE=PLMN"; // 如果要同时给多个接收方地址发送把多个接收方地址以“;”隔开 //3. 创建消息对象
MMessage m = new MMessage(); //4. 设置消息各种属性
//设置标题
m.setSubject("标题");
//设置消息类型
m.setContentType(m.CT_APPLICATION_MULTIPART_MIXED);
//设置抄送地址,可以添加多个
m.addCc( "13600000099/TYPE=PLMN");
m.addCc( "13700000002/TYPE=PLMN");
//设置密送地址,可以添加多个
m.addBcc("13600000333/TYPE=PLMN");
m.addBcc("13600000003/TYPE=PLMN");
//添加接收方地址
m.addTo("13600000333/TYPE=PLMN"); //5. 创建多个消息内容体并添加到多媒体消息对象中
//构造一个消息体,此处添加的只是一个文本串
MMSContent mmc = new MMSContent ();
byte[] content = null;
try
{
//注意编码方式,这儿使用UTF8编码方式
content = new String( "欢迎使用彩信" ).getBytes( "UTF8" );
}
catch( Exception e )
{
content = new byte[0];
e.printStackTrace();
}
//添加内容体
mmc.setContent(content, 0, content.length );
//设置内容体格式
mmc.setType ("text/plain");
mmc.setContentId("内容ID");
//将创建好的内容添加到消息
m.addContent(mmc); //构造一个消息体,此处添加的是一个GIF图片
mmc = new MMSContent ();
try
{
content = readFromFile("d:\\aa.gif");
}
catch( IOException e )
{
content = new byte[0];
e.printStackTrace();
}
mmc.setContent(content,0, content.length); //添加内容体
mmc.setType("image/gif"); //设置内容体格式
mmc.setContentId("gif2");
m.addContent(mmc); //将创建好的内容添加到消息 //6. 发送消息
s.send(m);
} /**
* 从文件中获取消息内容
* @param file_name
* @return
* @throws IOException
*/
public static byte[] readFromFile(String file_name) throws IOException
{
FileInputStream fin = new FileInputStream(file_name);
byte [] buf = new byte[fin.available()];
fin.read(buf);
fin.close();
return buf;
}
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:***)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:682)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:939)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:367)
at com.huawei.mms.vas.MMSender.sendEx(MMSender.java:158)
at com.huawei.mms.vas.MMSender.send(MMSender.java:300)
at com.sshd.test.SenderTest.main(SenderTest.java:98)模拟器 方Start Server...
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhost
Accept a client connection:localhostapidemo 文件public class SenderTest
{
public static void main(String[] args)
{
//1. 创建MM7消息发送接口
MMSender s = new MMSender(); //2. 设置VASP注册的各种信息
VAS.VASP_ID = "900009"; // 企业代码
VAS.VAS_ID = "9009"; // 服务代码
VAS.Service_Code = "0"; // 业务代码
VAS.VAS_USER = "yourName"; // 链接用户名
VAS.VAS_PASSWORD = "yourPassword"; // 链接密码
VAS.MMSC_URL = "http://localhost:55603/vas"; // MMSC_URL MMSC地址
VAS.From = "13800220002/TYPE=PLMN"; // 增值业务定制方号码 -- 用于计费 --
VAS.To = "13800220002/TYPE=PLMN;13800220002/TYPE=PLMN"; // 如果要同时给多个接收方地址发送把多个接收方地址以“;”隔开 //3. 创建消息对象
MMessage m = new MMessage(); //4. 设置消息各种属性
//设置标题
m.setSubject("标题");
//设置消息类型
m.setContentType(m.CT_APPLICATION_MULTIPART_MIXED);
//设置抄送地址,可以添加多个
m.addCc( "13600000099/TYPE=PLMN");
m.addCc( "13700000002/TYPE=PLMN");
//设置密送地址,可以添加多个
m.addBcc("13600000333/TYPE=PLMN");
m.addBcc("13600000003/TYPE=PLMN");
//添加接收方地址
m.addTo("13600000333/TYPE=PLMN"); //5. 创建多个消息内容体并添加到多媒体消息对象中
//构造一个消息体,此处添加的只是一个文本串
MMSContent mmc = new MMSContent ();
byte[] content = null;
try
{
//注意编码方式,这儿使用UTF8编码方式
content = new String( "欢迎使用彩信" ).getBytes( "UTF8" );
}
catch( Exception e )
{
content = new byte[0];
e.printStackTrace();
}
//添加内容体
mmc.setContent(content, 0, content.length );
//设置内容体格式
mmc.setType ("text/plain");
mmc.setContentId("内容ID");
//将创建好的内容添加到消息
m.addContent(mmc); //构造一个消息体,此处添加的是一个GIF图片
mmc = new MMSContent ();
try
{
content = readFromFile("d:\\aa.gif");
}
catch( IOException e )
{
content = new byte[0];
e.printStackTrace();
}
mmc.setContent(content,0, content.length); //添加内容体
mmc.setType("image/gif"); //设置内容体格式
mmc.setContentId("gif2");
m.addContent(mmc); //将创建好的内容添加到消息 //6. 发送消息
s.send(m);
} /**
* 从文件中获取消息内容
* @param file_name
* @return
* @throws IOException
*/
public static byte[] readFromFile(String file_name) throws IOException
{
FileInputStream fin = new FileInputStream(file_name);
byte [] buf = new byte[fin.available()];
fin.read(buf);
fin.close();
return buf;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货