Java 无法使用nexmo或thilio发送短信
我尝试使用java发送短信,为此我首先尝试了thilio。但我遇到了下面提到的错误。然后我下载了,在nexmo中创建了一个帐户,但我再次遇到了相同的错误。请已经处理过上述两个问题的人告诉我为什么会出现这个问题Java 无法使用nexmo或thilio发送短信,java,android,rest,sms,nexmo,Java,Android,Rest,Sms,Nexmo,我尝试使用java发送短信,为此我首先尝试了thilio。但我遇到了下面提到的错误。然后我下载了,在nexmo中创建了一个帐户,但我再次遇到了相同的错误。请已经处理过上述两个问题的人告诉我为什么会出现这个问题 import com.nexmo.messaging.sdk.NexmoSmsClient; import com.nexmo.messaging.sdk.SmsSubmissionResult; import com.nexmo.messaging.sdk.messages.TextMe
import com.nexmo.messaging.sdk.NexmoSmsClient;
import com.nexmo.messaging.sdk.SmsSubmissionResult;
import com.nexmo.messaging.sdk.messages.TextMessage;
public class SendTextMessage {
public static final String API_KEY = "apikey";
public static final String API_SECRET = "apisecret";
public static final String SMS_FROM = "singapore_number";// as i use my office number so can not disclose it
public static final String SMS_TO = "singapre_number";
public static final String SMS_TEXT = "Hello World!";
public static void main(String[] args) {
// Create a client for submitting to Nexmo
NexmoSmsClient client = null;
try {
client = new NexmoSmsClient(API_KEY, API_SECRET);
} catch (Exception e) {
System.err.println("Failed to instanciate a Nexmo Client");
e.printStackTrace();
throw new RuntimeException("Failed to instanciate a Nexmo Client");
}
// Create a Text SMS Message request object ...
TextMessage message = new TextMessage(SMS_FROM, SMS_TO, SMS_TEXT);
// Use the Nexmo client to submit the Text Message ...
SmsSubmissionResult[] results = null;
try {
results = client.submitMessage(message);
} catch (Exception e) {
System.err.println("Failed to communicate with the Nexmo Client");
e.printStackTrace();
throw new RuntimeException("Failed to communicate with the Nexmo Client");
}
// Evaluate the results of the submission attempt ...
System.out.println("... Message submitted in [ " + results.length + " ] parts");
for (int i=0;i<results.length;i++) {
System.out.println("--------- part [ " + (i + 1) + " ] ------------");
System.out.println("Status [ " + results[i].getStatus() + " ] ...");
if (results[i].getStatus() == SmsSubmissionResult.STATUS_OK)
System.out.println("SUCCESS");
else if (results[i].getTemporaryError())
System.out.println("TEMPORARY FAILURE - PLEASE RETRY");
else
System.out.println("SUBMISSION FAILED!");
System.out.println("Message-Id [ " + results[i].getMessageId() + " ] ...");
System.out.println("Error-Text [ " + results[i].getErrorText() + " ] ...");
if (results[i].getMessagePrice() != null)
System.out.println("Message-Price [ " + results[i].getMessagePrice() + " ] ...");
if (results[i].getRemainingBalance() != null)
System.out.println("Remaining-Balance [ " + results[i].getRemainingBalance() + " ] ...");
}
}
}
第32行是指这一行
客户端=新的NexmoSmsClient(API_密钥、API_密钥) 为什么要尝试使用库?只要你知道运营商,你通常可以通过电子邮件发送短信。通常是number@carrier.com或者类似的
这是一个包含运营商地址列表的站点:看起来您正在使用的Nexmo lib有一个您没有复制的外部依赖项 从Nexmo: 安装 您需要将nexmo-sdk.jar复制到应用程序中,并确保 它在您的类路径中。此外,还有一些图书馆 /lib目录下的依赖项,这些依赖项也必须复制到 应用程序类路径(如果尚未存在)
因此,请查看您下载的SDK zipfile的
/lib
目录,并将这些文件复制到您放置nexmo SDK.jar的任何位置。我想从web应用程序发送sms。因此,请告诉我如何做?使用专用API而不是sms电子邮件网关有很多原因。我的想法是:通过电子邮件网关发送的消息通常不会可靠地传递,您无法使用电子邮件网关接收传入的SMS消息。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
at SendTextMessage.main(SendTextMessage.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 1 more