꧁꫞꯭大꯭长꯭腿꯭胖꯭丁꯭꫞꧂ 2025-09-16 11:09 采纳率: 0%
浏览 12

无法通过设置cookie,请求到目标接口的正确返回数据,如何解决?(语言-java)

无法通过设置cookie,请求到目标接口的正确返回数据;

持有用户的登录cookie后,通过 设置与浏览器完全相同的请求头,使用Java 发送post请求,始终返回的是 空的数据

实际的请求头

img

改版之前是接口地址的形式是

https://www.abvvc.com/px-base-oretailsettlement-seller/orderInfo/queryOrderPage

改变之后变成了
https://www.abvvc.com/px-base-oretailsettlement-seller/orderInfo/queryOrderPage?MurR7rxG=00x0J4AlqWmesn4LgN_5eCI17y7POlkkAK5m6Wz5eMzE_XjwvuQO5tcat4Ak7b859ihNnc.IfPPq2LhfDVDAlBrvevuTTU8g.uuV4q3OMtmk19.oB5nQMCA

对比之前的接口多了MurR7rxG参数,并且请求同一个接口,每次发送参数都会发生变化;
相同的请求参数,第一次请求可以正常获取数据,第二次再使用会返回400

img

改版之前的cookie

Admin-Token10443=58627931d88c5cb070c8309ffd2b45da61dd930a857bd9777610dd0504e1f2f1a601c800ae62da441bc73cd6fa70dc95.0c559f61ff4dea9db7ed8c9bedcf43121a64367c; X-Ticket=58627931d88c5cb070c8309ffd2b45da61dd930a857bd9777610dd0504e1f2f1a601c800ae62da441bc73cd6fa70dc95.0c559f61ff4dea9db7ed8c9bedcf43121a64367c; Gray-Tag=63796773313738; ClientTag=OUTNET_BROWSE; CurrentRoute=/dashboard; X-Token=undefined

改版之后的cookie

Admin-Token10443=a22d5c1e8dd591baa3caf15fa648bcb6615033234e3e0ee6f03be466e576fd9bbe3cf9e65e291b2c48ff970b4c490e8fb20c6412bc66187213953f2976def2ee.cffec16a8a4c7f2ec6ca60043063bf2ea1035828; X-Ticket=a22d5c1e8dd591baa3caf15fa648bcb6615033234e3e0ee6f03be466e576fd9bbe3cf9e65e291b2c48ff970b4c490e8fb20c6412bc66187213953f2976def2ee.cffec16a8a4c7f2ec6ca60043063bf2ea1035828; Gray-Tag=7a6c73797978677330353233; ClientTag=OUTNET_BROWSE; CurrentRoute=/dashboard; X-Token=undefined; 3RKyaeh47p90O=60yEpTY0loy6QNHRgFJ2WOMbdL0VJH07C.ayLaibHhyNK.VelVIQMAdR1P0CPSUeqyZ.CzlL98NZyx8xkEWslMqFkaCDxhbssB3Ln0NLoN5j0; JSESSIONID=6850992D6A6CC51DE617C8B56AA0D455; 3RKyaeh47p90P=0Ry6_0IMFy53l6u7.ZaJFqIy5fuubaefmIw1StOFRxr8PzBlWh2urVFDQSp7Ep60jn_uvb_1ziRuZbUK1tS8g_uxJYuzrUS0zG6.hG7BZrn3T9WU8i2N_fOo.2EeuwXNYS3n2YG8FwHBdIeHaoMbk1obtoYbqvwBBTooX8p44tZgvxMUuVHxh6mlVQx7jMErVuk3KM0JEmQsqnlvlw47BQ.EZNM3ko8lcqjnRaMNSQu8BxPyZV5eWcDlLLudm0R_iM.UPFk.lmD1XoC87jy374zfOQo4WBw7nFc5OVDQCNM..yu7ViTLuKFEVmfE2jCQWL19hGN5br.9tvpx.2xhtpLj7TyWhUgLml.sP_BOoDMQ8DnLf8KHI.ZNpkPdz3WsQHySRbR6pNE50Rt0ckdnm7FZmOKsgJIgZkrrHZaA_zByvZEu3SBza2KaMr1Wc5UzmJDXoJ5oz0LR4SmeAFhE2g7f1ggoYUeTla0o_fqRZvu3

多出了3RKyaeh47p90P属性,实际意义未知;
尝试移除 3RKyaeh47p90P等属性,发送请求依然无法恢复正常;

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-09-16 11:09
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    在Java中设置Cookie并请求目标接口时,可能遇到的问题包括:

    • Cookie未被发送或接收不到
    • 请求头未设置正确

    以下是可能导致问题的代码示例:

    // 不设置Cookie
    String url = "https://example.com";
    String cookie = "JSESSIONID=1234567890";
    
    OKHttp
        .newBuilder()
        .addHeader("Cookie", cookie)
        .post(RequestBody.create(MediaType.get("application/x-www-form-urlencoded"), "key=value"))
        .execute();
    

    问题可能出在以下几个方面:

    1. Cookie格式不正确
    2. Cookie未被正确设置
    3. 请求头未被正确设置

    解决步骤

    • 检查Cookie格式:确保Cookie的格式正确,如JSESSIONID=1234567890; path=/; HttpOnly
    • 正确设置Cookie:使用如下方式设置Cookie
    // 设置Cookie
    Cookie cookie = new Cookie("JSESSIONID", "1234567890");
    cookie.setPath("/");
    cookie.setHttpOnly(true);
    
    // 使用Cookie
    Client cookie = new Client();
    cookie.addHeader("Cookie", cookie.toString());
    
    • 正确设置请求头

    解决方案核心代码如下:

    // 设置Cookie
    Cookie cookie = new Cookie("JSESSIONID", "1234567890");
    cookie.setPath("/");
    cookie.setHttpOnly(true);
    
    // 使用Cookie
    Client cookie = new Client();
    cookie.addHeader("Cookie", cookie.toString());
    
    // 发送请求
    String url = "https://example.com";
    String data = "key=value";
    
    cookie.post(RequestBody.create(MediaType.get("application/x-www-form-urlencoded"), data))
        .execute();
    

    总结

    为了解决通过设置Cookie请求目标接口时的问题,需要检查Cookie格式、正确设置Cookie和请求头。确保Cookie被正确发送,并确保请求头的设置是准确的,这样才能正常接收返回数据。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月16日