gpt4 book ai didi

java - 无法使用java使用短信网关发送短信

转载 作者:行者123 更新时间:2023-12-01 13:58:48 25 4
gpt4 key购买 nike

我正在尝试使用java发送短信,使用的短信网关是fulonsms.com,但它给出了错误。请告诉我哪里做错了。

package sms;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class MobileTry
{
private final String LOGIN_URL = "http://fullonsms.com/home.php";
private final String SEND_SMS_URL = "http://fullonsms.com/home.php";
private final String LOGOUT_URL = "http://fullonsms.com/logout.php?LogOut=1";

private final int MESSAGE_LENGTH = 10;
private final int MOBILE_NUMBER_LENGTH = 140;
private final int PASSWORD_LENGTH = 10;

private String mobileNo;
private String password;
private DefaultHttpClient httpclient;
MobileTry(String username,String password)
{
this.mobileNo = username;
this.password = password;
httpclient = new DefaultHttpClient();
}



public boolean isLoggedIn() throws IOException {
// User Credentials on Login page are sent using POST
// So create httpost object
HttpPost httpost = new HttpPost(LOGIN_URL);

// Add post variables to login url
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("MobileNoLogin", mobileNo));
nvps.add(new BasicNameValuePair("LoginPassword", password));
httpost.setEntity(new UrlEncodedFormEntity(nvps));

// Execute request
try{
HttpResponse response = this.httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println("entity " + slurp(entity.getContent(), 10000000));
System.out.println("entity " + response.getStatusLine().getStatusCode());

return true;
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println(e);
}
//Check response entity
return false;

}

public boolean sendSMS(String toMobile,String message) throws IOException {
HttpPost httpost = new HttpPost(SEND_SMS_URL);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("MobileNos", toMobile));
nvps.add(new BasicNameValuePair("Message", message));

httpost.setEntity(new UrlEncodedFormEntity(nvps));
HttpResponse response = this.httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
if(entity != null) {
System.out.println("entity " + slurp(entity.getContent(), 10000000));
System.out.println("entity " + response.getStatusLine().getStatusCode());
return true;
}
return false;
}

public boolean logoutSMS() throws IOException {
HttpGet httpGet = new HttpGet(LOGOUT_URL);
HttpResponse response;
response = this.httpclient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out
.println("entity " + slurp(entity.getContent(), 10000000));
System.out.println("entity "
+ response.getStatusLine().getStatusCode());
return true;
}
return false;
}


public static String slurp(final InputStream is, final int bufferSize)
{
final char[] buffer = new char[bufferSize];
final StringBuilder out = new StringBuilder();
try {
final Reader in = new InputStreamReader(is, "UTF-8");
try {
for (;;) {
int rsz = in.read(buffer, 0, buffer.length);
if (rsz < 0)
break;
out.append(buffer, 0, rsz);
}
}
finally {
in.close();
}
}
catch (UnsupportedEncodingException ex) {
/* ... */
}
catch (IOException ex) {
/* ... */
}
return out.toString();
}

/**
* @param args
*/
public static void main(String[] args) {
String username = "number";
String password = "password";
String toMobile = "number";

String toMessage = "Message Sent";

MobileTry fullOnSMS = new MobileTry(username, password);
try{
if(fullOnSMS.isLoggedIn() && fullOnSMS.sendSMS(toMobile,toMessage))
{
fullOnSMS.logoutSMS();
System.out.println("Message was sent successfully " );
}
System.exit(0);
}

catch(IOException e)
{
System.out.println(e);
System.out.println("Unable to send message, possible cause: " + e.getMessage());
}
}
}

错误如下

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.http.impl.client.CloseableHttpClient.<init>(CloseableHttpClient.java:60)
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:271)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:146)
at sms.MobileTry.<init>(MobileTry.java:35)
at sms.MobileTry.main(MobileTry.java:142)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
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)
... 5 more

最佳答案

这是由于缺少 commons-logging-xxx.jar 造成的。请将其添加到您的类路径中。如果你使用 Maven,

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>

将依赖项添加到您的项目中。希望这有帮助!

关于java - 无法使用java使用短信网关发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19466655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com