这个要调用传真协议了
创新互联建站2013年至今,是专业互联网技术服务公司,拥有项目成都网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元仙居做网站,已为上家服务,为仙居各地企业和个人服务,联系电话:18980820575
一般有的猫的驱动上会有传真驱动。
写本地方法调用那个驱动才可以,应该挺复杂的。
毕竟传真和平时使用的网络不一样,要用电话线拨号,而且要用传真自己的协议。
那你要做的就是向这个URL发送数据就好,给个例子:
public class Httptest1 {
8
9 public static void main(String[] args) {
10
11 URL url = null ;
12 HttpURLConnection conn = null ;
13 OutputStream outStream = null ;
14 InputStream inStream = null ;
15
16 try {
17 url = new URL( " " );
18 conn = (HttpURLConnection) url.openConnection();
19 conn.setDoOutput( true );
20 conn.setDoInput( true );
21
22 String sendXml = " ?xml version=\ " 1.0 \ " encoding=\ " UTF - 16 \ " ?!DOCTYPE SigMailCommand SYSTEM \ " SigMail.dtd\ " " ; // XML数据
23 sendXml += " SigMailCommand Name=\ " checkuser\ " Param Name=\ " domainname\ " test.com.cn/Param " ;
24 sendXml += " Param Name=\ " username\ " admin/Param/SigMailCommand " ;
25
26 outStream = conn.getOutputStream();
27
28 // 准备通过CONN对象写入XML数据
29 BufferedWriter bw = new BufferedWriter( new java.io.OutputStreamWriter(outStream,
30 " UTF-16 " ));
31 bw.write(sendXml);
32 bw.flush();
33 bw.close();
34
35 // DataOutputStream dataOutStream = new DataOutputStream(outStream);
36 // dataOutStream.writeChars(xml);
37 // dataOutStream.flush();
38 // dataOutStream.close();
39
40
41 // 准备通过CONN对象读取返回的XML数据
42
43 inStream = conn.getInputStream();
44 StringBuffer returnXml = new StringBuffer( "" );
45 BufferedReader rd = new BufferedReader( new InputStreamReader(inStream,
46 " UTF-16 " ));
47 for (String line = null ; (line = rd.readLine()) != null ;) {
48 returnXml.append(line);
49 }
50 System.out.println(returnXml.toString());
51 rd.close();
52 } catch (IOException ex) {
53 ex.printStackTrace();
54 } finally {
55 try {
56 if (outStream != null )
57 outStream.close();
58 if (inStream != null )
59 inStream.close();
60 if (conn != null )
61 conn.disconnect();
62 } catch (IOException e) {
63 // TODO 自动生成 catch 块
64 e.printStackTrace();
65 }
66 }
67
68 }
69
70 }
给你一个最简单的方法:
第一、根据 拿到WSDL文件。
第二、根据Axis的jar包,把WSDL文件生成客服端java代码。(可以把java文件打成jar文件,便于管理。怎么生成java代码,百度里都有说明我就不写了。)
第三、在你工程里用AXIS的功能属性,调用外部接口;给你一个格式模板:
MobileCodeWSLocator l=new MobileCodeWSLocator();//MobileCodeWSLocator是WSDL文件生成客服端java类;
MobileCodeWSSoap s=l.getMobileCodeWSSoap();();//MobileCodeWSSoap 是WSDL文件生成客服端java类
String m=s.getMobileCodeInfo("13811534742", "");
如果你用Axis生成的java类,格式和上面一样;自己参考一下就懂了。
你上面明显的连接异常,第三方服务明显没有开,WEBSERVICE可以设置户名、密码,像我们行所有的WEBSERVICE都设置,安全考虑吧。还有不懂的可以call我。
如果是单靠java的api 的话,是不可能完成的,也可以 试试JNI调用C了但是你得给 操作系统做软件接口
这是一个简单的列子 。
filePath:是发送传真的文件路径
phoneNum: 是传真号码,多个传真号以,隔开传真号码的格式为 “区号”+“-”+ 传真号码
实际传真时,传真号的格式为 区号+" "+传真号码 如果发送本地传真要去掉本地的区号
private void sendfax(String filePath, String phoneNum){
Properties pro = new Properties();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/fax4j.properties");
try {
pro.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
FaxClient faxClient = FaxClientFactory.createFaxClient("vbs",pro);
FaxJob faxJob = faxClient.createFaxJob();
if(phoneNum != null !"".equals(phoneNum)){
if(phoneNum.indexOf(",") = 0){
String[] faxstr = phoneNum.split(",");
for(int i = 0 ; i faxstr.length; i++){
if(!"".equals(faxstr[i])){
String qhPhone = "";
String phonenum = "";
if(faxstr[i].indexOf("-")=0){
qhPhone = faxstr[i].substring(0,faxstr[i].indexOf("-"));
}
if(MessageConstant.REGIONNUM.equals(qhPhone)){
phonenum = faxstr[i].substring(faxstr[i].indexOf("-")+1);
}else{
phonenum = faxstr[i].replace("-", " ");
}
phonenum = "0,"+phonenum ;//这里的0是由于电话拨号要拨0再拨传真机号
faxJob.setFile(new File(filePath));
faxJob.setPriority(FaxJobPriority.HIGH_PRIORITY);
faxJob.setTargetAddress(phonenum);
faxJob.setTargetName("");
faxJob.setSenderEmail("");
faxJob.setSenderName("");
faxJob.setSenderFaxNumber("发送号");
faxClient.submitFaxJob(faxJob);
System.out.println("Fax job submitted,ID:"+faxJob.getID());
}
}
}else{
String qhPhone = "";//区号
String phonenum = "";
if(phoneNum.indexOf("-")=0){
qhPhone = phoneNum.substring(0,phoneNum.indexOf("-"));
}
if(MessageConstant.REGIONNUM.equals(qhPhone)){
phonenum = phoneNum.substring(phoneNum.indexOf("-")+1);
}else{
phonenum = phoneNum.replace("-", " ");
}
faxJob.setFile(new File(filePath));
faxJob.setPriority(FaxJobPriority.HIGH_PRIORITY);
faxJob.setTargetAddress("0,"+phonenum);
faxJob.setTargetName("");
faxJob.setSenderEmail("");
faxJob.setSenderName("发送者");
faxJob.setSenderFaxNumber("发送号");
faxClient.submitFaxJob(faxJob);
System.out.println("Fax job submitted,ID:"+faxJob.getID());
}
}
}