Fa1th 2015-11-26 12:11 采纳率: 33.3%
浏览 1634

携带cookies通过路由器密码验证并对路由器进行配置

看了很多大神的帖子,使用了自己抓到的cookies并且携带它访问路由器配置页面,但还是出现了“no acess”的错误,已经搞了很久了,还是不知道哪里错了。我也想过先向路由器登陆界面传参数,可是抓不到get的参数名。
这是代码

import java.io.ObjectInputStream.GetField;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.CookieStore;
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.cookie.Cookie;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.impl.cookie.BasicClientCookie2;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

/**

  • 加入了cookies进行登陆,但仍然出现了403错误。
  • @author Administrator * */

public class Main {

public static void main(String[] args) throws Exception {
    //新建cookies
    BasicClientCookie2 cookie = new BasicClientCookie2("Authorization", "Basic%20YWRtaW46MTExMTEx"); 
    cookie.setDomain("192.168.1.1");
    cookie.setPath("/");
    BasicClientCookie cookie2 = new BasicClientCookie("ChgChgPwdSubTag", "");
    cookie2.setDomain("192.168.1.1");
    cookie2.setPath("/");

    //新建一个httpclient
    DefaultHttpClient httpclient=new DefaultHttpClient();
    BasicCookieStore basicCookieStore = new BasicCookieStore();
    basicCookieStore.addCookie(cookie);

    httpclient.setCookieStore(basicCookieStore);
    System.out.println(basicCookieStore.getCookies().get(0).getName());
    System.out.println(basicCookieStore.getCookies().add(cookie2));
    System.out.println(basicCookieStore.getCookies().get(0).getValue());
    HttpGet get = new HttpGet("http://192.168.1.1/userRpm/VirtualServerRpm.htm");
    HttpResponse response = httpclient.execute(get);


    if(response.getStatusLine().getStatusCode()==200){//如果状态码为200,就是正常返回
        String result=EntityUtils.toString(response.getEntity());
        //得到返回的字符串
        System.out.println(result);
    }
}

}

  • 写回答

2条回答 默认 最新

  • oyljerry 2015-11-26 14:21
    关注

    构造参数不对 先用浏览器登录 然后自己抓包对比浏览器发送的数据

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug