imroc / req

Simple Go HTTP client with Black Magic
https://req.cool
MIT License
4.12k stars 334 forks source link

使用python请求正常,使用req请求报403错误 #354

Closed wwangyu2 closed 3 weeks ago

wwangyu2 commented 1 month ago

不知道怎么回事,使用python请求不会遇到403,使用req请求报403错误

python的代码:

image

import requests

cookies = {
    'session-token': 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..5lacW_U4gEm4Aaf6.WggNWfu5eG-bbuKNhL4b2i3NP7cdLi1kbLRNFXunz0raQYVESWVvAfvXCr9V_f2YpP8fwV4YIOs24PdhQny3v4lrPZ0IRG9BD21VJwLcnGg27d_mVY5jNuSFPlGHfHySB8p5raK8hfp0BDYmehv65lxQPy7Rp4_sbtF2XxaAXtFlhc6KQ5ZoDyWXEMeIVotJVsJljSQf0Y8W6jN61mfZcUTZMeNfSLEYHeRzWcI7oScM9BvuOu1-dlq2cEnV3yOxGm61fIc8xKU7vGo0poDB53DiSXaID-iTW8U_ijqFnM53-fS3ojf3bmaUUWubH_6QHCldUz7f9rOLhrv-2OKQ3HbicE-dJQTskKOYBrc-Z2c0E-h9Q8Htx277ADH-ydj_FReVgWS60m1y_jPGlVRgM8nmIaXxq7Rm1cPmj1EaWLI_drb_gBjBWMk5bKMPAMawa-ldRxfs4pB3E79kTDH34gaoH59ZLOzT4NsAkWqNsGSaVrWRpnS2ytQCkhERLwdeamSwQNkl68exJHLYojqrI1BjSon2D-1f6YsMgx5G3OjamtKT4Dh1GmKau3Te9MkEwTc8Kop6HASol498oaObgk-x9SlWIAa7klLV8AlddUd_Vx-gNzFWb-wIIHyIJp84Tq2MBfzaLJ_-w9rS1vo6INuKiLJ6P2v8U72memayAA8fLRnaSTRySFbCOBtLu_gxjscPtuelZKWlNooY2GUPutIby7LxQ2ePoi04D1LfHz5Ajdgk6EBuauYoPIdChRlHoqou54s678fKBwy2EgLKxQNzvHSSUGfkrMTUcfK21xXslxQVmvG7ElOblqBdmF-mm0shIM4xNj_fOnDipOPJNlxufmR1OS6avNaT7XPCYnKRfHHtYvO6OnzpvOZ2OeinUHh1dZqYstkCUPoX4cVEeqcg1OVc5yr43bH5lGTaA3dE8ySEW2IzOWJrA8ODC4Q_7DhxevZ5-f1j9TTdXG8b6KWsKZ1beQXJu95QvO6HwQ8nCm45LqmJNSRBS_PkwAr9KcJBa6sKWzt8BtpsRlgNUmS-JuFzBPTCqEqS9Mr8sVaq5jamql0IVVfeWWNNfRpXDKB8Js9QePo65WZvskUVd7pMMTZskMMedhWKGD1uWNcCZRmd2FrjLCWI9MoU2a7K_ChXEAEZSgRjCzGgt-TJ0m0X_n-cgFM24N6pyEjPiyEKPqN1EfA5VRBxOzYk2m2KVfEbxL9PgcgG-jfsU-6iFIQqhsPc15BvNjCI5oPpZGDB1-Bqjsq9krEGs26SnPALQrW5sQixZqUEfR2uFBTY3nFOnONrjOLqw0oiMglDolacxDfZOBgiChqZM6ZE78uJcHKwK3WMD3aCAw1e7kSyzjtTiXkoM-qdOUFG4QaFkJ6ts7UVivytBoG5OrR_X0TVTiyvFY7d64WRJdJAC2IGfjCRgPaX0rRAMSIx98nfE-uOlCgm7OB55dLfPRiFVJQVhAHvM4KXjrtt5VP4qRLerMLmRzv4ihlpadHbKWiimC08OM7JMNYzUqFO310VRDfO-sbsmQjdqzVr9LiF93tSwLt-IqvaUoEq7PJp5Y6wkgKXyhNnlLgPhIqCED8TkgcSEn2ypUEvnRES9ivm1KnoHinJWw7wFjHRMTx9JtxkUFOhSlFTdgAaP1azQQ5XnG1epI3kdn3FK6l73gOULHf3KCz_z-Uth5bIIdZCRNIMWViO3itNaMfhZ5qyTB04utvzcIZ4Zn1daKfmPaw_JVAL8g9K8YqhaMDXNTQka49YO-08rQVW_VwXV5TB3lAukRxzTZjzdIyW0kkiW51XhUMudT8UKCSDKBK_6KC-_G8Hhy5hoXn8-hujRGNgmBGd2TB2bZq4SMfvuphIg00rjwcMkBkgVkYFUnJBOTN1tHUnIOeEQc6f7Gy-ZLH9NUDSo4CXfK8HQnAAHhJstspFk-LazCG9DxX_XxDbgyCy7159C80bLs77x_7n-Bn8Bv4V9icAmhaTy_J_aA8ijx0y2WlaJ_xT6_y6OSugBU3_oFHgQYwFgFu_l_S_6R-BczPjlQkVKqx36xI-hL3hPO-ws9FsZVoaWZ3fPTcgk-HwTJ2ZFhgkf1m9a28gvxbPQm42bb5VdCXaILS6_ufNCeRxLM-cYwz2lvKCliMhLx_Iw79m9rhn66hcGRernqkq5igZm-mHzkBvIi_TmqDkBmMbnS7kFjQuTfdvr4dpD1MybDHF0fQ5kDTg-Or3p50ohLxlaPS6ERPGxtRQMWGoMPPs7criHWMvKTIMY6W0E2gMSopJV5QIydQcXTfNcjWslZdPQgyhdnqPj9mbuIqMwUIL--GatU-ZyF43kkGBV7-yZtof6orr3ecLBY4KvYUKjW-M0vCwn8M98q_2-feEWDIO9KQZoJCpHNAvzVXUtfpsIXKGf31vwXnkxUoxx1IiibhsDuvF_w4JEUFDB07Vf4_Vn59BxLCqupMl9r30vAkxvMzfU9lHI7X4-0LqpD-0liBiIOTw6UrCgjqTjdmxaJqj_O9UUiPoX7IejVjlf-OsUfjdi96x2nauf4-YFcgOGTN5FanQWyD8sG_NWJMSJKk5UBZop_dEYNZDRfgQe1k-7wMRdNvw2yAtzbCxPYv65eOzScCxQ7d4hDMdUQVJEwcw-_G-oIWQbcaf4GEmI-cUbECKr50czUOPTeG8LggHgKRXzCPAD6zE4_H5mzePfqcOtb3e9hQFgBVVDcfquCEMzJhMGIphV-uGMJE6dPjqTvx1TryBWHWYIpyptHZHcpH8VqNepxdeh7TT3zBZIJZcFCdc7Q_lBm5sMqL2Z8mWcXVrIgeL8C2bZArkVTZmehZXVXibLR0ppj1RbcIackWF5C2NLwJ0tyHpBhiuRQ2JpICCLu6xN5JI02UIFKT7UxzI_2cfcEtSNvJHSs5SY0_l5exjlaIzOQ8oFDhhm4MbLw5Y7VS8F63efGw9pK_s7KxxHF03YfGhHT0XAzzkol1o9kvxHWIDTowBVFIY74bxFCb2QOYU6HPPSGEp.O2tSmIvKNrjFdhEPSdtIOw',
}

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
}

response = requests.get('https://chat.rawchat.cc/api/auth/session', cookies=cookies, headers=headers)

print(response.text)
print(response.status_code)

req的代码 image

package main

import (
    "fmt"
    "net/http"

    "github.com/imroc/req/v3"
)

func main() {
    client := req.C().
        SetCommonHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36").
        SetCommonCookies(
            &http.Cookie{
                Name:  "session-token",
                Value: "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..wgb_EoQ_7578zeDM.GKltu3YN9OYRWEjSWVh0035Z3aZ7-WbDCXz5fAIdjh6-si6bM-bmQ1yM9YH7Utahbii_zv5zPL61NCk2Qi85aEKWtXVL8g7FgeD6UslaFZPikfjw32OYNGmp-VcLC9-RDOLxFvrU3rtO2bm3-GenZxeeimfWWZcz1dbpuYE35EhOECHWGm0n1AooLQmKiESX5afKqNL6niESsj7QgXMPAtjEPp8DdROXsZ_-ILrP2SXWTKBZV3kijtEgx8FzZE9BOmomCAefO47HbD2Z_Wt5Zw9gX6N5kptOg8mcs9OLoPrEWoIAT1HNyF1Htp-HwhCi4hxm2WqKOUBhX5PEm9KNkoILYh6dc5Cz_rxqQio3BwA24YX-FfvVfpdfY-rTSZoBboALzThL2OUlUChMgTpdCUWhSLMOECBRAwuoVa5YzIvOMI7QvJUFUQyBeHxRaXsVVidrwhQ6vfImZUUxDX7hovjhaB__BX5seAuhfyARg4hauHAs73chjhp5f6ei8wX7358n32G1j8-1s3xbuW_mOdH92X0z4C-WufysFX4Qn36MNtyHn4ljihOpekzR79eBndzv_-uGXS8e8C30Ujl_FegKLphhe68B5bUzO-fxP8UnvOLMNTVlF525t_0BVf-icWfwhzy8aW17LfGyY91NOwrfCJtfFNrrR0UKawbMYKRQtvdF3V-i1q_mwP1f9DJU1oiZ81DJni7bjKE23m8HNhCM-uhdk1wadHPlY261OU_r091crAQqe_tolsiBcb2STMMEStg0f4XzzG8VH3UUZHeSu1ze6n95S6kKywZRWpjqOUDKHghn2q3yaZObJmXsKDtbC1f4nsgMxIDZkBqh2KkYYd1nE5fgFtDzBmgYuXaSl3LC54Utby4XgnLDbsmmL1adKprUsfxB5d-O7JHeCUuPBAalbOiR6kt0IzuaB3Ve4tzgg-sl4QieeaSrFAE8mGJJvtVRydVM-LrTiU0u_kHVRIUIoqH6_x1wLUe7DTOOQ4v63SWP-DsxJW4dbZaH8ktxrtsW3WnB-7sge6T-b3CH-Z6k3LCClCRwFwb_ydHYk4w4AGWjbZOqNL4_6smR3un5seLoNvo7BsI-cQ6vriBqKGCl-NZWSqAH5OKNbVdJxWzqXwq8ewCmm-2q877gwF6JUI9Z3XM1vLtWTFhgZH5wyq-qA6L7Dy7JTr3ojvKEiIVtqRuqOjFrqcNN0rni4Yzm88KlSnPD41N4IEiM4XL6XPAkBZKsjRPYbathcQdbQeitLr7qKGumVMm43OZdqS190oYP6aNsGrkEFdv9GR6a3fj2r-BAKI8AxtQ8TxcgC6rxV46ugr-uFikrJdOO3ktJg5T0zkNpePUq6TVIHVGSv_qNgfoROs0XRWDPnQp8nUThegQ8VKO2MVBXY096hHqH48xREbSlDmrkudHkipIcnlZ9M3DIdmLb6Hz0KFV6E_nU-tVaZ5f_UuWeuIm_5TC__EK0xP5ZHWPw0CwmZg23O3qozWKCW3SoEyiVJfG_cqv8JxyW89J1rzPHX9kNSb0pBJ4f5zKQoE9_jFfTkHjaTJaM-JQO3YmZlLicPv0i7jDMZgR8B3rkVyyZhO0f76rlhsKdn8zD3aBU6-ahjK3rC8Mgv3j7bhqT48LwONXxPNnZ90nOoos4S0I3ePAE2hYxYqPeUxr1g9DIKGsGO1ROUhcc-_f0kXhDWPS6an-e4xxOEfBCcn9QR3n2uEi8YuNHZ-HUo3cxC5DXOm_VaNSUVtggMnMZbo7k0DuCbZd9LXU80TJbAdAsYwfl2PgLuuchXNNKzjvORT73lyu43dUQBth6O62jlcVXFniaWqERpxvCByV_rx9yc-ynAQEIr0U1YtL2hp9tUFW-e4kdq4ZeAo81yUmPDNc723HEiZh5aReLha4-XbBONntLX3N02-wan92EKDMizam3GoH3bH0lvD34gq_GtIFk9SxGjUDZeGXhnVhHJlD1W9dgfadh0rHHoRTl1_hMz2X71ijUP-SkJ7BMr5q66WIbCJyWlN0E3GbkrhIVmn5cCCuLT2SC2Ke6wSitk8Lv9WaAtq0N7AmCLfr5L1uDLa4OgZuizMifENSGzTS2HLHAm0Ek5m-XK18N0Hp7Es67sO_WHlDgcYThqnTdiud3ZP_wibrMUwgDlwpRjdBJlEf3UolE6VSnzhAAlNqcvehWP4ToD9UFFF5bL9okwmxTRHQDXFYvbooBEdYhI67SEQP6Wf861A6vyK3QNWsNN0NwvTF19Ce0HlT4F1swlZLBkzOLLPbnZ3MDBCl7l8qUya9hy2gz7Kf_wPZ_aKNVHGLDvcRhFmvplzwaZfAxgBbt-4dRS7iYZkcdbyvWeTWLGz3CG_5AlfbCYAF69V_22tt1QFETgC58QGu1P12TGknQSXaKncPV0YnoHPW4n6_dDZkCUBat_3gdwIONiTrDPp0EtAkM5-i7BaFS32Tnd-ttNHPtrvSFT7tgA-Bwk_uomllwlkx-I25rMB2lwoGZwd5qgmu0gCjsrIaCX6oznL2Wx-j3gWNKX1enye6sn_6sRnly3Zzd2B6X9NURnI_NYb4hKQTs7_bwU3wPpYn9ld1NfkeS5HrzwbhQahX8oJJfW9X8giqMtCM7oUrUdO_E0OLjpPhk3pWB8iO_9FN7QC5SiXcgNLTTFFSrsQIReq38wB3_OQpkpfsmvNJj7Ndtzq0MF-C5aLqik616BFi7Z0JseN7kQ_HqwkqgvovnhpZ3qYRZwnjrJx68aYMaaPqdAptPoTDsErrxKsxSGuqy3BXtmlmbsAow0umBKphEfTO7k64BevIzsqoNzMSBPw4pLBHqc3J9CEJwAK4lb5eNwE6n7iPARlMHtRTRQ9odEaLfss6MKoQEHhn4FbKw_NXbjhlnWFK7a6jVIdGgqzlnHaDQ8onF9_847yUypdNbWWD6pTV-ZsJjQ5siYDyry3KE7Op7mtAMkheNBxjYZ7WiQTIjrMWxdzpStBcRMzbxo69a8dEBrVBCSTnbIx2VVIPs.pEhVhOAjN432JLrL5fwjjQ",
            },
        )

    resp, err := client.R().Get("https://chat.rawchat.cc/api/auth/session")
    if err != nil {
        fmt.Println("Request failed:", err)
        return
    }

    fmt.Println("Response Status:", resp.Status)
    fmt.Println("Response Body:", resp.String())
}
imroc commented 1 month ago

这个得具体对比分析了,先确保 cookie 的有效性,在对比两边的 header 有什么不同,req 可以用 DevMode 将内容 dump 下来,观察 header