導航:首頁 > 編程語言 > javaatsms

javaatsms

發布時間:2022-06-22 00:58:25

『壹』 java運行底下有at英文什麼意思

是版本問題,jdk版本的問題。
Calculator類初始化的時候有問題,你可能是在初始化調用了本身造成了遞歸,看看你程序的調用順序是不是在Calculator的初始化方法或者構造方法里間接或直接的調用了本身。
錯誤的原因,是因為我們使用高版本的jdk編譯的java。

『貳』 誰有關於JAVA串口的AT指令的操作程序,發簡訊的......謝謝 謝謝

沒分啊 -.-
設置格式
AT+CMGF=1
OK
AT+CMGS...... 發簡訊

『叄』 關於Java中的JavaMail問題

給你個例子吧
/**
* @author EX-QINCIDONG001
* 驗證
*/
public class MailAuthorization extends Authenticator {
private String username;
private String password;

public MailAuthorization(String username,String password) {
this.username = username;
this.password = password;
}

@Override
protected PasswordAuthentication getPasswordAuthentication() {
// TODO Auto-generated method stub
return new PasswordAuthentication(username,password);
}

}
public class MailInfo {
// 伺服器地址
private String hostName;
// 埠
private String hostPort;
// 用戶名
private String userName;
private String password;
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
// 是否需要驗證
private boolean validate = false;
// 發件人
private String sender;
// 收件人
private String[] recvers = {};
// 抄送給哪些人
private String[] ccs = {};
// 郵件主題
private String subject;
// 郵件內容
private String content;
// 附件
private List<File> attaches;
public String getHostName() {
return this.hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getHostPort() {
return this.hostPort;
}
public void setHostPort(String hostPort) {
this.hostPort = hostPort;
}
public boolean isValidate() {
return this.validate;
}
public void setValidate(boolean validate) {
this.validate = validate;
}
public String getSender() {
return this.sender;
}
public void setSender(String sender) {
this.sender = sender;
}

public String[] getRecvers() {
return this.recvers;
}
public void setRecvers(String[] recvers) {
this.recvers = recvers;
}

public String[] getCcs() {
return this.ccs;
}
public void setCcs(String[] ccs) {
this.ccs = ccs;
}
public String getSubject() {
return this.subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
public List<File> getAttaches() {
return this.attaches;
}
public void setAttaches(List<File> attaches) {
this.attaches = attaches;
}

}

public class MailSender {
private MailInfo mailInfo;

public MailSender(MailInfo mailInfo) {
this.mailInfo = mailInfo;
}

// 發送郵件方法
public void sendMail() throws MessagingException {
Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp"); // smtp協議
props.put("mail.smtp.host", mailInfo.getHostName());
props.put("mail.smtp.port", mailInfo.getHostPort());
props.put("mail.smtp.auth", mailInfo.isValidate()?"true":"false");

Authenticator authenticator = new MailAuthorization(mailInfo.getUserName(),mailInfo.getPassword());
Session session = Session.getDefaultInstance(props, authenticator);

MimeMessage msg = new MimeMessage(session);
msg.setSubject(mailInfo.getSubject(), "utf-8");
Address address = new InternetAddress(mailInfo.getSender());
msg.setFrom(address);

// 收信人
Address[] recvs = new Address[mailInfo.getRecvers().length];
int index = 0;

if (mailInfo.getRecvers() != null) {
for (String s : mailInfo.getRecvers()) {
Address addr = new InternetAddress(s);
recvs[index] = addr;
index++;
}
}
msg.setRecipients(RecipientType.TO,recvs);
index = 0;

// 抄送
Address[] ccs = new Address[mailInfo.getCcs().length];
if (mailInfo.getCcs() != null) {
for (String s:mailInfo.getCcs()) {
Address addr = new InternetAddress(s);
ccs[index] = addr;
index++;
}
}

msg.setRecipients(RecipientType.CC, ccs);

Multipart mp = new MimeMultipart();
BodyPart part = new MimeBodyPart();
part.setContent(mailInfo.getContent(), "text/html;charset=utf-8");
// 增加附件
if (mailInfo.getAttaches() != null && mailInfo.getAttaches().size() > 0) { // 有附件
for (int i=0;i<mailInfo.getAttaches().size();i++) {
BodyPart bp = new MimeBodyPart();
FileDataSource fds = new FileDataSource((File) mailInfo.getAttaches().get(i));
bp.setDataHandler(new DataHandler(fds));
mp.addBodyPart(bp);
}
}
mp.addBodyPart(part);
msg.setContent(mp);

// Transport transport = session.getTransport();
Transport.send(msg);
}
}

public class TestMailSender {
/**
* @param args
*/
public static void main(String[] args) {
MailInfo mi = new MailInfo();
mi.setValidate(true);
mi.setUserName("[email protected]");
mi.setPassword("*******");
mi.setSubject("測試郵件發送");
mi.setSender("[email protected]");
mi.setRecvers(new String[]{"[email protected]","[email protected]"});
mi.setHostPort("25");
mi.setHostName("smtp.163.com");
mi.setContent("<a href='www..com'>網路</a>網路知道");
// 添加附件
List<File> attaches = new ArrayList<File>();
attaches.add(new File("D:\\qincidong\\資料\\Ejb\\EJB3.0入門經典-weblogic.pdf"));
attaches.add(new File("D:\\qincidong\\資料\\Ejb\\編寫第一個EJB應用程序.doc"));
mi.setAttaches(attaches);

MailSender sender = new MailSender(mi);
try {
sender.sendMail();
System.out.println("郵件發送成功。");
} catch (MessagingException e) {
System.err.println("郵件發送失敗");
e.printStackTrace();
}
}

}

『肆』 java 如何發送簡訊

JAVA發送手機簡訊,流傳有幾種方法:(1)使用webservice介面發送手機簡訊,這個可以使用sina提供的webservice進行發送,但是需要進行注冊;(2)使用簡訊mao的方式進行簡訊的發送,這種方式應該是比較的常用,前提是需要購買硬體設備,呵呵(3)使用中國網建提供的SMS簡訊平台
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
commons-codec-1.4.jar

『伍』 java web應用啟動報錯

ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
從網上找了下資料,綜合一下原因分析:
這是web容器生成的servlet代碼中有out.write(」」),這個和JSP中調用的response.getOutputStream()產生沖突.
即Servlet規范說明,不能既調用 response.getOutputStream(),又調用response.getWriter(),無論先調用哪一個,在調用第二個時候應會拋出 IllegalStateException,因為在jsp中,out變數是通過response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out變數,故出現以上錯誤。
解決方案:
1.在程序中添加:
out.clear();
out = pageContext.pushBody();
就可以了;

2,不要在%〕〔%之間寫內容包括空格和換行符
3,在頁面寫入圖片的時候,需要flush()
OutputStream output=response.getOutputStream();
output.flush();
4,在頁面確定寫入<meta http-equiv=」Content-Type」 content=」text/html; charset=gb2312」>

『陸』 中國移動簡訊介面java怎麼調用

java調用運營商的介面參考:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>
<%
String PostData = "sname=kwsm&spwd=kwsm&scorpid=&sprdid=101&sdst=13910862579&smsg="+java.net.URLEncoder.encode("簡訊內容","utf-8");
//out.println(PostData);
String ret = cn.umob.sms.Send.SMS(PostData, "http://10.1.120.22/SmsMmsWebService/Service.asmx/g_Submit");
out.println(ret);
//請自己反序列化返回的字元串並實現自己的邏輯
%>

</h1>
</body>
</html>

『柒』 java的有異常不懂

這是空指針錯啊....你引用了值為null值的對像......
在你的SumPeople.java這個類的51行...初始化的時候出的...你好好找下是不是傳入了一個空對像

『捌』 win7下java調用sms介面出現亂碼

說到底,就是編碼不對應。把兩邊的編碼調到統一的

『玖』 java怎麼同步發送及非同步發送簡訊例子解析

  1. 發送簡訊的介面
    根據自己的情況選擇服務商。

  2. 開發文檔
    從開發文檔中我們可以看到. 可以直接使用http請求也可以使用WebService請求發送簡訊. 由於DEMO文件夾下的java和jsp文件夾中的代碼都是使用http請求發送簡訊. 所以這里就不再細說了, 我們使用WebService的方式演示發送簡訊.

  3. 生成客戶端代碼

    從介面文檔中我們知道它的WebService的WSDL的url為:http://106.ihuyi.cn/webservice/sms.php?WSDL那麼我們可以執行下面的命令生成客戶端代碼:

    wsimport -keep http://106.ihuyi.cn/webservice/sms.php?WSDL

    其中wsimport是JDK自帶的工具, -keep url選項是"保留生成的文件". 該命令會在當前目錄下生成sms.cn.ihuyi._106包, 以及眾多的類. 接下來開始編寫我們自己的代碼.

  4. 定義介面

    為了方便, 這里我們首先定義一個介面:

    Sms.java
    publicinterfaceSms{
    /**
    *向mobile發送簡訊,內容為message
    *
    *@parammobile手機號
    *@parammessage簡訊內容
    *@return成功返回-1,否則返回其他值
    */
    intsendMessage(Stringmobile,Stringmessage);
    }

    這個介面很簡單, 只有一個方法. 這個方法用來發送簡訊.

  5. 同步發送簡訊

    接下來我們首先實現一個同步發送簡訊的類:


    IhuyiSmsImpl.java
    {

    privateStringaccount;
    privateStringpassword;

    publicvoidsetAccount(Stringaccount){
    this.account=account;
    }

    publicvoidsetPassword(Stringpassword){
    this.password=password;
    }

    @Override
    publicintsendMessage(Stringmobile,Stringmessage){
    cn.ihuyi._106.Smsfactory=newcn.ihuyi._106.Sms();
    SmsSoapsmsSoap=factory.getSmsSoap();
    SubmitResultsubmit=smsSoap.submit(account,password,mobile,message);
    intcode=submit.getCode();
    if(code==2){
    return-1;
    }
    System.out.println("發送簡訊失敗,code:"+code);
    returncode;
    }
    }
  6. 非同步發送簡訊

    由於發送簡訊涉及到網路通信, 因此sendMessage方法可能會有一些延遲. 為了改善用戶體驗, 我們可以使用非同步發送簡訊的方法. 原理很簡單: 如果用戶請求發送簡訊, 我們不是直接調用IhuyiSmsImpl的sendMessage方法, 而是將請求保存起來(生產者), 然後告訴用戶: 簡訊發送成功. 之後有若干個消費者取出任務, 調用sendMessage方法發送簡訊.

    這里, 我使用線程池完成上面的任務:

    AsyncSmsImpl.java
    {
    publicSmssendSms;
    =Executors.newFixedThreadPool(3);

    publicvoidsetSendSms(SmssendSms){
    this.sendSms=sendSms;
    }

    @Override
    publicintsendMessage(Stringmobile,Stringmessage){
    try{
    executorService.submit(()->sendSms.sendMessage(mobile,message));
    }
    catch(Exceptione){
    Sysemt.out.println("提交任務時發生錯誤"+e);
    return0;
    }
    return-1;
    }

    publicvoiddestroy(){
    try{
    executorService.shutdown();
    }
    catch(Exceptione){}
    }
    }

    在第17行, 我們獲得遠程對象的一個代理對象. 之後就可以通過這個代理對象進行發送簡訊, 查詢賬戶余額等操作.

    第18行, 使用該代理對象的submit方法提交了簡訊內容. 該方法的參數信息及返回值含義在介面文檔中有詳細的說明.

    第19行我們獲得了結果的狀態碼. 根據文檔上的說明, 狀態碼為2說明提交成功. 簡單起見, 這里我們只關注提交成功的情況. 需要注意的是, 狀態碼為2隻是說明提交成功. 根據官網上的"3-5秒內響應、100%到達", 我們可以推測. 如果提交成功, 那麼基本上3-5秒內,簡訊就會發送成功, 根據用戶的網路情況, 可能稍有延遲用戶就可以收到簡訊.

    使用這段代碼發送簡訊也很簡單, 直接new一個對象, 設置好賬號和密碼就可以發送簡訊了.

  7. 代碼很簡單, 直接將Sms介面的sendMessage(mobile, message)方法作為一個任務加到線程池的任務隊列中. 這樣等到有空閑線程時, 就會執行sendSms.sendMessage(mobile, message)發送簡訊. 這里我們假設只要保存到線程池就可以成功發送簡訊. 因為發送失敗的情況實際上很罕見.

閱讀全文

與javaatsms相關的資料

熱點內容
二進制流轉pdf 瀏覽:915
php判斷爬蟲 瀏覽:569
960除24除4簡便演算法 瀏覽:786
關於解壓英語翻譯 瀏覽:565
python控制鍵盤右鍵 瀏覽:920
php沒有libmysqldll 瀏覽:828
時政新聞app哪個好 瀏覽:906
手機已加密怎麼辦 瀏覽:201
安卓手機截屏怎麼傳到蘋果 瀏覽:527
京管家app哪裡下載 瀏覽:33
文件夾橫向排列的豎向排列 瀏覽:453
51單片機驅動攝像頭模塊 瀏覽:689
政府文件加密沒法轉換 瀏覽:373
android判斷棧頂 瀏覽:331
憑證軟體源碼 瀏覽:860
androidwebview滾動事件 瀏覽:11
如何將電腦上的圖片壓縮成文件包 瀏覽:899
程序員轉金融IT 瀏覽:837
黑馬程序員培訓效果如何 瀏覽:915
本地集成編譯 瀏覽:528