先说说问题,因为平时在屋里可以收到chinaunicom的无线网信号,免费使用而且网速还行,但有个问题就是每隔二十分钟就要掉次线(好像是联通故意的),不胜其烦啊,作为工科技术男就想着能不能自己解决这个问题,但无奈lz学通信的,对java、web什么的实在是不太懂,希望各位it高手能指点指点
目前我已经实现了自动检测网络状态,检测到掉线后自动重启无线网卡(因为每次只有禁用再启用无线网卡后才能再登陆账号,不知道什么原因),然后在网上找了个使用httpclient自动登录人人网的代码测试了下也能成功,但是我尝试如法炮制着去登陆联通账号网页的时候就是登不了,所以前来请教~
我能提供的一些参考:
1,联通账号登陆网址:http://wlan7.bj.chinaunicom.cn/index.jsp?basname=&setUserOnline=0&sap=
2,测试成功的人人网自动登录代码:
package test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
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;
import org.apache.http.util.EntityUtils;
//import org.apache.http.client.CookieStore;
import org.apache.http.cookie.Cookie;
public class Test{
public static void main(String[] args) throws ClientProtocolException,IOException{
String loginurl="http://www.renren.com/PLogin.do";
String username="*****@qq.com";
String password="*****";
System.out.println(Test.posturl(loginurl,username,password));
}
public static String posturl(String loginurl,String username,String
password) throws ClientProtocolException, IOException{
HttpClient httpclient1 = new DefaultHttpClient();
HttpPost httppost = new HttpPost(loginurl);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("email",username));
formparams.add(new BasicNameValuePair("password",password));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,"utf-8");
httppost.setEntity(entity);
String str="";
HttpClient httpclient2=null;
try {
HttpResponse response1 = httpclient1.execute(httppost);
String login_success=response1.getFirstHeader("Location").getValue();//获取登陆成功之后跳转链接
System.out.println(login_success);
HttpGet httpget = new HttpGet(login_success);
httpclient2 = new DefaultHttpClient();
HttpResponse response2=httpclient2.execute(httpget);
str=EntityUtils.toString(response2.getEntity());
httppost.abort();
httpget.abort();
} finally{
httpclient1.getConnectionManager().shutdown();