服务器返回响应的代码是,“服务器返回的HTTP响应代码:400”试图在Java中

发送短信

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.Iterator;

import java.util.Vector;

public class SMS {

public static void send(String uid, String pwd, String phone, String msg)

throws Exception {

if ((uid == null) || (uid.length() == 0)) {

throw new IllegalArgumentException("User ID should be present.");

}

uid = URLEncoder.encode(uid, "UTF-8");

if ((pwd == null) || (pwd.length() == 0)) {

throw new IllegalArgumentException("Password should be present.");

}

pwd = URLEncoder.encode(pwd, "UTF-8");

if ((phone == null) || (phone.length() == 0)) {

throw new IllegalArgumentException(

"At least one phone number should be present.");

}

if ((msg == null) || (msg.length() == 0)) {

throw new IllegalArgumentException("SMS message should be present.");

}

msg = URLEncoder.encode(msg, "UTF-8");

Vector numbers = new Vector();

if (phone.indexOf(59) >= 0) {

String[] pharr = phone.split(";");

for (String t : pharr)

try {

numbers.add(Long.valueOf(t));

} catch (NumberFormatException ex) {

throw new IllegalArgumentException(

"Give proper phone numbers.");

}

} else {

try {

numbers.add(Long.valueOf(phone));

} catch (NumberFormatException ex) {

throw new IllegalArgumentException("Give proper phone numbers.");

}

}

if (numbers.size() == 0) {

throw new IllegalArgumentException(

"At least one proper phone number should be present to send SMS.");

}

String temp = "";

String content = "username=" + uid + "&password=" + pwd;

URL u = new URL("http://www.way2sms.com/auth.cl");

HttpURLConnection uc = (HttpURLConnection) u.openConnection();

uc.setDoOutput(true);

uc.setRequestProperty(

"User-Agent",

"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5");

uc.setRequestProperty("Content-Length",

String.valueOf(content.length()));

uc.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

uc.setRequestProperty("Accept", "*/*");

uc.setRequestProperty("Referer", "http://www.way2sms.com//entry.jsp");

uc.setRequestMethod("POST");

uc.setInstanceFollowRedirects(false);

PrintWriter pw = new PrintWriter(new OutputStreamWriter(

uc.getOutputStream()), true);

pw.print(content);

pw.flush();

pw.close();

BufferedReader br = new BufferedReader(new InputStreamReader(

uc.getInputStream()));

while ((temp = br.readLine()) != null) {

System.out.println(temp);

}

String cookie = uc.getHeaderField("Set-Cookie");

u = null;

uc = null;

for (Iterator localIterator = numbers.iterator(); localIterator

.hasNext();) {

long num = ((Long) localIterator.next()).longValue();

content = "custid=undefined&HiddenAction=instantsms&Action=custfrom450000&login=&pass=&MobNo="

+ num + "&textArea=" + msg;

u = new URL("http://www.way2sms.com/FirstServletsms?custid=");

uc = (HttpURLConnection) u.openConnection();

uc.setDoOutput(true);

uc.setRequestProperty(

"User-Agent",

"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5");

uc.setRequestProperty("Content-Length",

String.valueOf(content.getBytes().length));

uc.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

uc.setRequestProperty("Accept", "*/*");

uc.setRequestProperty("Cookie", cookie);

uc.setRequestMethod("POST");

uc.setInstanceFollowRedirects(false);

pw = new PrintWriter(new OutputStreamWriter(uc.getOutputStream()),

true);

pw.print(content);

pw.flush();

pw.close();

br = new BufferedReader(new InputStreamReader(uc.getInputStream()));

while ((temp = br.readLine()) != null)

;

br.close();

u = null;

uc = null;

}

u = new URL("http://wwwa.way2sms.com/jsp/logout.jsp");

uc = (HttpURLConnection) u.openConnection();

uc.setRequestProperty(

"User-Agent",

"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5");

uc.setRequestProperty("Accept", "*/*");

uc.setRequestProperty("Cookie", cookie);

uc.setRequestMethod("GET");

uc.setInstanceFollowRedirects(false);

br = new BufferedReader(new InputStreamReader(uc.getInputStream()));

while ((temp = br.readLine()) != null)

;

br.close();

u = null;

uc = null;

}

public static void main(String args[]) throws Exception {

//SMS s = new SMS();

SMS.send("9999999999", "password", "8888888888", "Hi How Are u !!");

}

}

但是,当我运行这段代码,我得到以下错误:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 400 for URL: http://www.way2sms.com/FirstServletsms?custid=XXXXXXXXX

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)

at SMS.send(SMS.java:115)

at SMS.main(SMS.java:142)

+0

http://stackoverflow.com/q/9349703。看起来最可能的原因是您发送格式不正确的网址。检查你发送的URL,并确保它是正确的。 –

2014-09-24 18:15:52

+0

@Robert 你好,谢谢。我查了网址,它的正确。我仍然无法发送短信。 –

2014-09-25 07:34:39

+0

'http://www.way2sms.com/FirstServletsms?custid ='对我来说看起来不像一个有效的网址。最重要的是,你似乎忘记了在同一段代码中使用'content'。 –

2015-06-02 06:02:32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值