Regarding the request code generation section.
Hi !
Below is the Python code for requests generated by httptoolkit. I want to clarify two issues:
1. How is the order of the request headers determined?
Because some providers use the order of request headers to detect invalid requests.
2. this have a querystring dictionary, but the URL part is not processed.
```
import requests
url = "https://xxxxxx.com/lrcedge/getDataByJavaTransform/v1/lr/collections/xxxx?pageId=home&pageType=tv&widgetScheme=lrc%2Drust%2Dcollections%2Dv3%2E8&featureScheme=react%2Dv5&decorationScheme=lr%2Ddecoration%2Dgen4%2Dv4&clientPage=CollectionsPage&clientFeatures=DynamicBadging%2CRemaster%2CUseDynamicDatumParameters%2CUseV12TitleActionsView&dynamicFeatures=API%5FLINK%5FACTION%5FSUPPORTED%2CAppleTVODEnabled%2CCLIENT%5FDECORATION%5FENABLE%5FDAAPI%2CDigitalBundlePvcPvc%2CDiscoveryAssistantSupported%2CENABLE%5FCSIR%2CHERO%5FIMAGE%5FOPTIONAL%2CLinearAiringsEntitled%2CLinearFavoritesSupported%2CLinearStationInAllCarousels%2CLinearStationsInHero%2CLinearTitles%2CLiveTab%2CPromotionalBannerSupported%2CRemoveFromContinueWatching%2CRustLRSupported%2CSportsFavoritesEnabled%2CSupportChannelItemDecoration%2CSupportsImageTextLinkTextInStandardHero%2CSuppressPVAdFreePrice%2CTvodMovieBundles&presentationScheme=android%2Dtv%2Dreact%2Dfocus&isBrandingEnabled=true®ulatoryLabel=true&tentpoleSSMEnabled=true&useEpisodicSynopsis=true&useMiniSynopsis=true&roles=live%2Dsupported%2Cstartover%2Dsupported%2Clinear%2Dsupported%2Cprime%2Doffer%2Dsupported%2Cmultipart%2Dnotification%2Dsupported%2Ctvod%2Dsupported%2Csvod%2Dsupported%2Csupports%2Ddai%2Dtimeshifting%2Csupports%2Drapid%2Drecap%2Cplayback%2Denvelope%2Dsupported%2Clinear%2Dplayback%2Denvelope%2Dsupported%2Cav%2Dliveliness%2Dwith%2Dunavailable%2Dmessage%2Dsupported%2Csupports%2Dstream%2Dselector%2Dmodal%2Cnew%2Dtitle%2Dbadge%2Dsupported%2Ccoming%2Dsoon%2Dtitle%2Dbadge%2Dsupported&clientId=pv%2Dlrc%2Drust&transformStore=local&transformStage=prod&javaTransformTimeout=5000&timeZoneId=Asia%2FHong%5FKong&gascEnabled=true&uxLocale=zh%5FCN&geoLocation=US&supportedLocales=de%5FDE%2Cen%5FUS%2Ces%5FES%2Cfr%5FFR%2Cit%5FIT%2Cnl%5FNL%2Cpl%5FPL%2Cpt%5FBR%2Cpt%5FPT%2Cms%5FMY%2Cfil%5FPH%2Chi%5FIN%2Cta%5FIN%2Cte%5FIN%2Cnb%5FNO%2Csv%5FSE%2Cda%5FDK%2Czh%5FCN%2Czh%5FTW%2Cko%5FKR%2Cth%5FTH%2Cfi%5FFI%2Ctr%5FTR%2Cid%5FID%2Cru%5FRU%2Cja%5FJP%2Ces%5FUS%2Cen%5FXD%2Car%5FXD%2Cel%5FGR%2Cro%5FRO%2Ccs%5FCZ%2Chu%5FHU%2Ces%5F419"
querystring = {
"pageId": "home",
"pageType": "xxx",
"widgetScheme": "lrc-rust-collections-v3.8",
"featureScheme": "react-v5",
"decorationScheme": "lr-decoration-gen4-v4",
"clientPage": "CollectionsPage",
"clientFeatures": "DynamicBadging,Remaster,UseDynamicDatumParameters,UseV12TitleActionsView",
"dynamicFeatures": "API_LINK_ACTION_SUPPORTED,AppleTVODEnabled,CLIENT_DECORATION_ENABLE_DAAPI,DigitalBundlePvcPvc,DiscoveryAssistantSupported,ENABLE_CSIR,HERO_IMAGE_OPTIONAL,LinearAiringsEntitled,LinearFavoritesSupported,LinearStationInAllCarousels,LinearStationsInHero,LinearTitles,LiveTab,PromotionalBannerSupported,RemoveFromContinueWatching,RustLRSupported,SportsFavoritesEnabled,SupportChannelItemDecoration,SupportsImageTextLinkTextInStandardHero,SuppressPVAdFreePrice,TvodMovieBundles",
"presentationScheme": "android-tv-react-focus",
"isBrandingEnabled": "true",
"regulatoryLabel": "true",
"tentpoleSSMEnabled": "true",
"useEpisodicSynopsis": "true",
"useMiniSynopsis": "true",
"roles": "live-supported,startover-supported,linear-supported,prime-offer-supported,multipart-notification-supported,tvod-supported,svod-supported,supports-dai-timeshifting,supports-rapid-recap,playback-envelope-supported,linear-playback-envelope-supported,av-liveliness-with-unavailable-message-supported,supports-stream-selector-modal,new-title-badge-supported,coming-soon-title-badge-supported",
"clientId": "pv-lrc-rust",
"transformStore": "local",
"transformStage": "prod",
"javaTransformTimeout": "5000",
"timeZoneId": "xxxx",
"gascEnabled": "true",
"uxLocale": "xxxx",
"geoLocation": "US",
"supportedLocales": "de_DE,en_US,es_ES,fr_FR,it_IT,nl_NL,pl_PL,pt_BR,pt_PT,ms_MY,fil_PH,hi_IN,ta_IN,te_IN,nb_NO,sv_SE,da_DK,zh_CN,zh_TW,ko_KR,th_TH,fi_FI,tr_TR,id_ID,ru_RU,ja_JP,es_US,en_XD,ar_XD,el_GR,ro_RO,cs_CZ,hu_HU,es_419"
}
headers = {
"host": "xxx",
"user-agent": "xxx",
"accept-encoding": "deflate, gzip, br",
"content-type": "application/json",
"authorization": "Bearer xxx",
"x-request-priority": "BACKGROUND",
"x-client-app": "avlrc",
"x-client-version": "unknown-version",
"x-atv-page-type": "xxxx",
"accept": "application/json",
"x-atv-page-id": "home"
}
response = requests.get(url, headers=headers, params=querystring)
print(response.text)
```
关闭于 2025-12-19 1 条评论