ehang-io / nps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

Home Page:https://ehang.io/nps/documents

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WebApi请求返回302

iad12138 opened this issue · comments

commented

这是我的请求代码:

        String auth = "xxx";
        RestTemplate rest = new RestTemplate();
        JSONObject timeR = rest.getForObject("http://xxx/auth/gettime", JSONObject.class);
        assert timeR != null;
        int time = timeR.getInteger("time");

        URI url = URI.create("http://xxx/client/list");
        RestTemplate restTemplate = new RestTemplate();
        // 创建请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        // 创建请求参数
        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
        map.add("auth_key", DigestUtils.md5DigestAsHex((auth + time).getBytes()));
        map.add("timestamp", "time");
        map.add("start", "0");
        map.add("limit", "10");
        // 创建请求实体对象
        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
        // 发送请求
        String response = restTemplate.postForObject(url, request, String.class);

其中获取服务器时间戳正常
但是下面的/client/list报错 302

commented

我找到解决办法了,希望对大家有帮助

        String auth = "xxx";
        RestTemplate rest = new RestTemplate();
        JSONObject timeR = rest.getForObject("http://xxx/auth/gettime", JSONObject.class);
        assert timeR != null;
        int time = timeR.getInteger("time");

        String authKey = DigestUtils.md5DigestAsHex((auth + time).getBytes());
        URI url = URI.create("http://xxx/client/list?auth_key=" + authKey + "&timestamp=" + time);
        // 创建请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        // 创建请求参数
        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
        map.add("start", "0");
        map.add("limit", "10");
        // 创建请求实体对象
        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
        // 发送请求
        String listR = rest.postForObject(url, request, String.class);
        log.info("{}", listR);