Commit 965c45f1 authored by wangmingming's avatar wangmingming

111123123

parent 51ea555e
...@@ -50,6 +50,7 @@ for i in range(100): ...@@ -50,6 +50,7 @@ for i in range(100):
headers.update(r) headers.update(r)
print(f'{(time.time() - t1) *1000:.3f}ms',len(headers['X-1ItxWO9i-a'.lower()])) print(f'{(time.time() - t1) *1000:.3f}ms',len(headers['X-1ItxWO9i-a'.lower()]))
print(headers['user-agent'])
url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS" url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = { data = {
"tripType": "oneWay", "tripType": "oneWay",
......
This diff is collapsed.
...@@ -2,10 +2,10 @@ let proxy = function (tt, name) { ...@@ -2,10 +2,10 @@ let proxy = function (tt, name) {
return new Proxy(tt, { return new Proxy(tt, {
get(target, p, receiver) { get(target, p, receiver) {
let res = Reflect.get(target, p, receiver); let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res) // console.log(`${name} get`, p, typeof res)
if (!['_registeredHandlers', 'window', '_currentEvent', '_eventListenerss','JSON','Math','JSON'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') { // if (!['_registeredHandlers', 'window', '_currentEvent', '_eventListenerss','JSON','Math','JSON'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, `${name}.${p}`) // return proxy(res, `${name}.${p}`)
} // }
return res; return res;
} }
}) })
...@@ -274,7 +274,7 @@ function Window(options) { ...@@ -274,7 +274,7 @@ function Window(options) {
// } // }
// console.log(Reflect.get(target, '_cf_chl_ctx', receiver)) // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))
if (!['_registeredHandlers', 'window', '_currentEvent', 'performance','debug','_eventListenerss','top','JSON', 'Math'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') { if (!['_registeredHandlers', 'window', '_currentEvent','debug','_eventListenerss','top','JSON', 'Math'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, p) return proxy(res, p)
} }
return res; return res;
......
...@@ -990,6 +990,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -990,6 +990,7 @@ exports.install = (globalObject, globalNames) => {
} }
querySelectorAll(selectors) { querySelectorAll(selectors) {
// console.log('querySelectorAll', selectors)
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
throw new TypeError("'querySelectorAll' called on an object that is not a valid instance of Document."); throw new TypeError("'querySelectorAll' called on an object that is not a valid instance of Document.");
...@@ -1011,7 +1012,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -1011,7 +1012,7 @@ exports.install = (globalObject, globalNames) => {
args.push(curArg); args.push(curArg);
} }
let res = utils.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args)); let res = utils.tryWrapperForImpl(esValue[implSymbol].querySelectorAll(...args));
// _console('querySelectorAll', selectors, res) console.log('querySelectorAll', selectors, res)
// function proxy (a, name){ // function proxy (a, name){
// return new Proxy(a, { // return new Proxy(a, {
......
...@@ -97,6 +97,10 @@ exports.install = (globalObject, globalNames) => { ...@@ -97,6 +97,10 @@ exports.install = (globalObject, globalNames) => {
if (globalObject.HTMLElement === undefined) { if (globalObject.HTMLElement === undefined) {
throw new Error("Internal error: attempting to evaluate HTMLMediaElement before HTMLElement"); throw new Error("Internal error: attempting to evaluate HTMLMediaElement before HTMLElement");
} }
var videos = {"audio/aac; codecs=\"flac\"": "", "audio/flac": "probably", "audio/mpeg; codecs=\"mp3\"": "probably", "audio/mpeg; codecs=\"vp9\"": "", "audio/webm; codecs=\"vp8\"": "", "audio/webz": "", "audio/x-m4a; codecs=\"mp3\"": "", "audio/x-m4a; codecs=\"vp8, mp4a.40\"": "", "audio/x-m4a; codecs=\"vp9, mp4a.40.2\"": "", "video/mp4": "maybe", "video/mp4; codecs=\"ac-3\"": "", "video/mp4; codecs=\"avc1.42011E\"": "", "video/mp4; codecs=\"avc1.42E009\"": "maybe", "video/mp4; codecs=\"avc1.42E034\"": "probably", "video/mp4; codecs=\"avc1.42F01E\"": "probably", "video/mp4; codecs=\"avc1.4D001E\"": "probably", "video/mp4; codecs=\"avc3.42001E\"": "probably", "video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"": "probably", "video/mp4; codecs=\"flac\"": "probably", "video/mp4; codecs=\"hev1\"": "", "video/mp4; codecs=\"hvc1x\"": "", "video/mp4; codecs=\"lavc1337\"": "", "video/mp4; codecs=\"mp4a.40.02\"": "probably", "video/mp4; codecs=\"mp4a.40.5\"": "probably", "video/mp4; codecs=\"mp4a.67\"": "probably", "video/mp4; codecs=\"opus\"": "probably", "video/ogg; codecs=\"flac\"": "probably", "video/ogg; codecs=\"opus\"": "probably", "video/ogg; codecs=\"vp8\"": "probably", "video/webm": "maybe", "video/webm; codecs=\"av01.0.04M.08\"": "probably", "video/webm; codecs=\"vp09.02.10.08\"": "probably", "video/x-dv": "", "video/x-m4v; codecs=\"avc1.42AC23\"": "maybe"};
class HTMLMediaElement extends globalObject.HTMLElement { class HTMLMediaElement extends globalObject.HTMLElement {
constructor() { constructor() {
throw new TypeError("Illegal constructor"); throw new TypeError("Illegal constructor");
...@@ -132,7 +136,15 @@ exports.install = (globalObject, globalNames) => { ...@@ -132,7 +136,15 @@ exports.install = (globalObject, globalNames) => {
}); });
args.push(curArg); args.push(curArg);
} }
return utils.tryWrapperForImpl(esValue[implSymbol].canPlayType(...args)); let res = utils.tryWrapperForImpl(esValue[implSymbol].canPlayType(...args));
window.videos.push(type)
if (videos[type]){
res = videos[type]
}
console.log('canPlayType', type, res)
return res
} }
play() { play() {
......
...@@ -144,7 +144,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -144,7 +144,7 @@ exports.install = (globalObject, globalNames) => {
Object.defineProperty(globalObject, interfaceName, { Object.defineProperty(globalObject, interfaceName, {
configurable: true, configurable: true,
writable: true, writable: true,
value: MimeType value: utils.proxy(MimeType, 'MimeType')
}); });
}; };
......
...@@ -108,6 +108,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -108,6 +108,7 @@ exports.install = (globalObject, globalNames) => {
} }
javaEnabled() { javaEnabled() {
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
throw new TypeError("'javaEnabled' called on an object that is not a valid instance of Navigator."); throw new TypeError("'javaEnabled' called on an object that is not a valid instance of Navigator.");
...@@ -117,6 +118,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -117,6 +118,8 @@ exports.install = (globalObject, globalNames) => {
} }
get appCodeName() { get appCodeName() {
return window.fingerprint.navigator.appCodeName
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -127,6 +130,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -127,6 +130,8 @@ exports.install = (globalObject, globalNames) => {
} }
get appName() { get appName() {
return window.fingerprint.navigator.appName
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -137,6 +142,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -137,6 +142,8 @@ exports.install = (globalObject, globalNames) => {
} }
get appVersion() { get appVersion() {
return window.fingerprint.navigator.appVersion
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -147,6 +154,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -147,6 +154,7 @@ exports.install = (globalObject, globalNames) => {
} }
get platform() { get platform() {
return window.fingerprint.navigator.platform
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -157,6 +165,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -157,6 +165,8 @@ exports.install = (globalObject, globalNames) => {
} }
get product() { get product() {
return window.fingerprint.navigator.product
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -167,6 +177,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -167,6 +177,8 @@ exports.install = (globalObject, globalNames) => {
} }
get productSub() { get productSub() {
return window.fingerprint.navigator.productSub
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -317,6 +329,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -317,6 +329,8 @@ exports.install = (globalObject, globalNames) => {
} }
get userAgent() { get userAgent() {
return window.fingerprint.navigator.userAgent
// return window.browser.ua; // return window.browser.ua;
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
...@@ -328,6 +342,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -328,6 +342,8 @@ exports.install = (globalObject, globalNames) => {
} }
get vendor() { get vendor() {
return window.fingerprint.navigator.vendor
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -338,6 +354,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -338,6 +354,8 @@ exports.install = (globalObject, globalNames) => {
} }
get vendorSub() { get vendorSub() {
return window.fingerprint.navigator.vendorSub
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -348,6 +366,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -348,6 +366,8 @@ exports.install = (globalObject, globalNames) => {
} }
get language() { get language() {
return window.fingerprint.navigator.language
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -358,6 +378,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -358,6 +378,8 @@ exports.install = (globalObject, globalNames) => {
} }
get languages() { get languages() {
return window.fingerprint.navigator.languages
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -368,6 +390,9 @@ exports.install = (globalObject, globalNames) => { ...@@ -368,6 +390,9 @@ exports.install = (globalObject, globalNames) => {
} }
get onLine() { get onLine() {
// return window.fingerprint.navigator.onLine
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -389,6 +414,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -389,6 +414,8 @@ exports.install = (globalObject, globalNames) => {
get hardwareConcurrency() { get hardwareConcurrency() {
return window.fingerprint.navigator.hardwareConcurrency
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) { if (!exports.is(esValue)) {
...@@ -400,6 +427,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -400,6 +427,7 @@ exports.install = (globalObject, globalNames) => {
getUserMedia() { getUserMedia() {
console.log('navigator.getUserMedia') console.log('navigator.getUserMedia')
} }
...@@ -617,6 +645,17 @@ exports.install = (globalObject, globalNames) => { ...@@ -617,6 +645,17 @@ exports.install = (globalObject, globalNames) => {
unregisterProtocolHandler() { unregisterProtocolHandler() {
console.log('navigator.unregisterProtocolHandler') console.log('navigator.unregisterProtocolHandler')
} }
get mimeTypes() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get mimeTypes' called on an object that is not a valid instance of Navigator.");
}
return utils.getSameObject(this, "mimeTypes", () => {
return utils.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
});
}
} }
Object.defineProperties(Navigator.prototype, { Object.defineProperties(Navigator.prototype, {
...@@ -649,20 +688,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -649,20 +688,7 @@ exports.install = (globalObject, globalNames) => {
}, undefined, 'get ') }, undefined, 'get ')
}, },
mimeTypes: { mimeTypes: {enumerable: true},
enumerable: true,
get: v_saf(function mimeTypes() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get mimeTypes' called on an object that is not a valid instance of Navigator.");
}
return utils.getSameObject(this, "mimeTypes", () => {
return utils.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
});
})
},
hardwareConcurrency: {enumerable: true}, hardwareConcurrency: {enumerable: true},
getUserMedia: {enumerable: true}, getUserMedia: {enumerable: true},
maxTouchPoints: {enumerable: true}, maxTouchPoints: {enumerable: true},
...@@ -716,17 +742,17 @@ exports.install = (globalObject, globalNames) => { ...@@ -716,17 +742,17 @@ exports.install = (globalObject, globalNames) => {
let r = {} let r = {}
Object.keys(Navigator.prototype).forEach(e => { // Object.keys(Navigator.prototype).forEach(e => {
r[e] = {} // r[e] = {}
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value']) { // if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value']) {
r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value']) // r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value'])
} // }
//
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get']) { // if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get']) {
r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get'], undefined, 'get ') // r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get'], undefined, 'get ')
} // }
}) // })
Object.defineProperties(Navigator.prototype, r) // Object.defineProperties(Navigator.prototype, r)
if (globalObject[ctorRegistrySymbol] === undefined) { if (globalObject[ctorRegistrySymbol] === undefined) {
......
...@@ -92,6 +92,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -92,6 +92,8 @@ exports.install = (globalObject, globalNames) => {
} }
get availWidth() { get availWidth() {
console.log('availWidth', window.fingerprint.screen.availWidth)
// return 1920;
return window.fingerprint.screen.availWidth; return window.fingerprint.screen.availWidth;
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
...@@ -104,6 +106,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -104,6 +106,8 @@ exports.install = (globalObject, globalNames) => {
} }
get availHeight() { get availHeight() {
console.log('availHeight', window.fingerprint.screen.availHeight)
// return 1080;
return window.fingerprint.screen.availHeight; return window.fingerprint.screen.availHeight;
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
...@@ -116,6 +120,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -116,6 +120,8 @@ exports.install = (globalObject, globalNames) => {
} }
get width() { get width() {
console.log('width', window.fingerprint.screen.width)
return window.fingerprint.screen.width; return window.fingerprint.screen.width;
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
...@@ -128,6 +134,8 @@ exports.install = (globalObject, globalNames) => { ...@@ -128,6 +134,8 @@ exports.install = (globalObject, globalNames) => {
} }
get height() { get height() {
console.log('height', window.fingerprint.screen.height)
return window.fingerprint.screen.height; return window.fingerprint.screen.height;
const esValue = this !== null && this !== undefined ? this : globalObject; const esValue = this !== null && this !== undefined ? this : globalObject;
...@@ -246,7 +254,7 @@ exports.install = (globalObject, globalNames) => { ...@@ -246,7 +254,7 @@ exports.install = (globalObject, globalNames) => {
Object.defineProperty(globalObject, interfaceName, { Object.defineProperty(globalObject, interfaceName, {
configurable: true, configurable: true,
writable: true, writable: true,
value: Screen value: utils.proxy(Screen, 'Screen')
}); });
}; };
......
...@@ -128,19 +128,19 @@ const proxy = function (tt, name) { ...@@ -128,19 +128,19 @@ const proxy = function (tt, name) {
return new Proxy(tt, { return new Proxy(tt, {
get(target, p, receiver) { get(target, p, receiver) {
let res = Reflect.get(target, p, receiver); let res = Reflect.get(target, p, receiver);
if (p !== 'debug' && p !== 'Object') { // if (p !== 'debug' && p !== 'Object') {
console.log(`${name} get`, p, typeof res) console.log(`${name} get`, p, typeof res)
} // }
// if (p === 'offsetHeight'){ // if (p === 'offsetHeight'){
// debugger; // debugger;
// } // }
// console.log(Reflect.get(target, '_cf_chl_ctx', receiver)) // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))
if (!['_registeredHandlers', 'window', '_currentEvent', 'performance', 'debug', '_eventListenerss', 'top', 'prototype'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') { // if (!['_registeredHandlers', 'window', '_currentEvent', 'performance', 'debug', '_eventListenerss', 'top', 'prototype'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, p) // return proxy(res, p)
} // }
return res; return res;
}, },
// getPrototypeOf(target) { // getPrototypeOf(target) {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
const { mixin } = require("../../utils"); const { mixin } = require("../../utils");
const PluginArray = require("../generated/PluginArray"); const PluginArray = require("../generated/PluginArray");
const MimeTypeArray = require("../generated/MimeTypeArray"); const MimeTypeArray = require("../generated/MimeTypeArray");
const util = require("util");
const NavigatorIDImpl = require("./NavigatorID-impl").implementation; const NavigatorIDImpl = require("./NavigatorID-impl").implementation;
const NavigatorLanguageImpl = require("./NavigatorLanguage-impl").implementation; const NavigatorLanguageImpl = require("./NavigatorLanguage-impl").implementation;
const NavigatorOnLineImpl = require("./NavigatorOnLine-impl").implementation; const NavigatorOnLineImpl = require("./NavigatorOnLine-impl").implementation;
...@@ -27,4 +28,4 @@ mixin(NavigatorImpl.prototype, NavigatorCookiesImpl.prototype); ...@@ -27,4 +28,4 @@ mixin(NavigatorImpl.prototype, NavigatorCookiesImpl.prototype);
mixin(NavigatorImpl.prototype, NavigatorPluginsImpl.prototype); mixin(NavigatorImpl.prototype, NavigatorPluginsImpl.prototype);
mixin(NavigatorImpl.prototype, NavigatorConcurrentHardwareImpl.prototype); mixin(NavigatorImpl.prototype, NavigatorConcurrentHardwareImpl.prototype);
exports.implementation = NavigatorImpl; exports.implementation = NavigatorImpl
"use strict"; "use strict";
const idlUtils = require("../generated/utils"); const idlUtils = require("../generated/utils");
const util = require("util");
var plugins = { var plugins = {
"0": { "0": {
"0": { "0": {
...@@ -153,6 +154,18 @@ var plugins = { ...@@ -153,6 +154,18 @@ var plugins = {
"name": "WebKit built-in PDF" "name": "WebKit built-in PDF"
} }
} }
var plggs = [];
for (let i = 0; i < 5; i++) {
plggs.push(plugins[i])
}
function randomSort(a, b) { return Math.random() > 0.5 ? -1 : 1; }
plggs.sort(randomSort);
for (let i = 0; i < 5; i++) {
plugins[i] = idlUtils.proxy( plggs[i], 'plgs.' + i)
}
let proxy = function (tt, name) { let proxy = function (tt, name) {
return new Proxy(tt, { return new Proxy(tt, {
get(target, p, receiver) { get(target, p, receiver) {
......
...@@ -707,6 +707,8 @@ class DocumentImpl extends NodeImpl { ...@@ -707,6 +707,8 @@ class DocumentImpl extends NodeImpl {
// https://dom.spec.whatwg.org/#dom-document-createelement // https://dom.spec.whatwg.org/#dom-document-createelement
createElement(localName, options) { createElement(localName, options) {
console.log('createElementcreateElement', localName)
validateName(this._globalObject, localName); validateName(this._globalObject, localName);
if (this._parsingMode === "html") { if (this._parsingMode === "html") {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
# This is a sample Python script. r = {"X-1ItxWO9i-f": "A9ZRMMqJAQAAt5hSE13YbJXA2BzSQjnbBACoxK4mguq3Ok2JNF2eYkXsXTXEAS2LJzKuchRAwH8AAEB3AAAAAA==", "X-B3-TraceId": "9cf0661264efdb4a", "Accept-Encoding": "gzip, deflate, br", "Referer": "https://www.jetblue.com/booking/flights?from=BOS&to=LGA&depart=2023-09-02&isMultiCity=false&noOfRoute=1&lang=en&adults=4&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false", "X-1ItxWO9i-d": "ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8Aw70F2VFuvHUAAAAAH29cNgB-AI4z2JdsnUn3R9cQhaIr", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-site", "X-1ItxWO9i-z": "q", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "Accept-Language": "en-US,en;q=0.9", "Booking-Application-Type": "NGB", "Origin": "https://www.jetblue.com", "Sec-Fetch-Dest": "empty", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", "X-1ItxWO9i-a": "vSgugqMc0yw2RYUAOjMMjJZAQ08QI_pKxoUH6wWc23DKFHQloka5rwwhopH00Y_7=QFernMtBKyB9cJiXgTx5JT_M=ga_HGvhS3nMupSs_oDHT8UOnaxRBCfHO6JNuwL0Zb7KBm2MuODNKpxMtF0KPcRAacLUJbGGdD3XIvabniVxxYCmdHx5a8uEQYp-Z5rxDZs7DerGFZW43O0WtNMTxkcV==76WEHsvalt6o4DMV2VhouypdF_ybT-GiaaH2RDfaB9DhCncxmjoPBWqajWw_OS0MmqilkluwmnwgfFW4_ZdfKFKgkOd6c9OdhDSJmayyBAKioEP7AgCPh1f=JKbGCj3_pD0AVm5LCD1aYU6W7c=EpKY0-SA-e4GynapxbmyGcLjGUfMv9FF2Z9r0y_UTYXY2Vq-b6ijgmgoOcMZBHSgXC=278nSbQte8mJZ89PaKWybDWrT2-sEgHotvwVi2m=U2hNjXli2UtMu=kC1HhUgsAX_6_YKKPjNF23xXbhlcCwq1hfpheWBNwifYAUs80XEn4ejy5yN7nt4wAHUPb7_oAtkxgCjnEmNSPuv5Cv5qta5h2p8aPNlARgsRPOTxZxxnbQp07BAiEGstKbc9UXFas1CodOYAFN7Ud25Tn0nXN-9UX=g6Qdr2DqAldsKJLS1_7y5duKCqBNfFMNGX_MflkZuIoA_8fU5D_AsEHmyTAre-bQ_LHN1lWTmJub_Aa9RwlYc1WgZPPxRHI_yHZFGKcVuIJ_V467uv0YZ5QY2KGnwPZlpi1cqaCsBvpMat-SUp1U9duDurLTrW7GTo-hL9hn92strjT-aELYR25lZ2i1MXf5mZTVc_lh7ZKosTTanNdWbwm0h4DG_I-RP7XaTXhVYBnn7B9AHU197XCu4eEMm8IirF-N41D_iWx9LuTiGmEiXsp55Vp-JoGDehZ9w5Zi98j=0wMpORmOEc8IlOLivWLqLpBbaIAmvE6rpd1_yT8IoE8GSeJks3uVBohT-duXEE7ebc9qCAx0_SsdU-SDs7A3P4g5Vv3LmCs8oS3mICmvSsCBl6mg-_Y=y_NWiu1a0oyyfQ_uO2Ri04xtIsE6XRKa5=bYbDabCIftAYo_Mf2r8MgMbHX7iGud3S_ksdXHknP-8uMw-1_ZmDhUqHDymZtweQN-9gQqgn3TFUVJ2dp_9C9lomPpMkXXWYMtmhy10miPamx=wZZdjijtY3269UXYmCj7apLu92-WLYX=cMMntTLEm7SJ43=7I1MW3FWm7AKKmnhXKuZ=l2PlG1LW8A=ggy3tMtnuxaSGJwEHH2bSRMwUndyJAi2RXSwOMi2IZ=-RUhbs3UKY=ikObMa=NuZmKoex2TqcEIniEt4wcq7NMbFvp=VFSjI59A3AjFLQXm2=1MnJeeR2Q2OT7SOZKwALGpiWebrYEtw4EvyCZyNQ-pRPEly1c-YPNIMjiuJPyKTPadt6EhS9HrurqOCrcuhuPVqTJLH1nIqFIjpUeSCm3pyKSthryqFE3XthcRd1moM_4Idla6pchmW6juk1GlMCp50-DgXlBx9Ps1ft3q3vEvfVc62oOHYxtMTqYNEg1V335utCo-l=0lsRu1epQUk7_BMkSN2i7XSsiJ=2mN15fEDcp64vRX0eaJr8sYtXtUxmeDjHY=mjpfISVDpCuR46_qxiyRWnBjnFSXmfgVl5Rv-BpHA_=EVWYbitEHEMF-bOdSHnfeOTL6vGpgsVKI54sMm=sXjN5inGiQHYt2HpHUS4ehmycB4N12Tn74yNrNLMWu_oI3y9Z7L90rSLuWFK3rP-xYMW6DLett4TkF_HyW9HwGMV8vVR2RkBUhgVPxLMs4r2WhmYlXTmh1EvjIgb=Mx_KviC8IdhnJ2p4Qt1BqNPp", "X-1ItxWO9i-b": "9styk5", "X-B3-SpanId": "1691314314182", "Accept": "application/json", "Application-Channel": "Desktop_Web", "Content-Type": "application/json", "x-auth-token": "", "API-Version": "v3", "X-1ItxWO9i-c": "AMCdLsqJAQAALTEpQdA8oI008XYlfeuUoFWVU10DZx45eBAVesO9BdlRbrx1", "sec-ch-ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""}
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
print(len(r['X-1ItxWO9i-a']))
# Press the green button in the gutter to run the script. \ No newline at end of file
if __name__ == '__main__':
print_hi('PyCharm')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/
let a = [ const Canvas = require('canvas')
64, 139, 172, 137, 50, 200, 180, 198, 211, 52, 56,
134, 89, 116, 143, 46, 124, 45, 164, 251, 144, 152,
86, 49, 73, 213, 110, 34, 171, 7, 9, 157, 135,
160, 248, 17, 196, 158, 106, 39, 1, 101, 245, 126,
117, 126, 1, 73, 255, 50, 12, 194, 158, 142, 195,
80, 110, 218, 250, 167, 27, 39, 220, 96
]
let b = [
0, 0, 6, 22, 28, 65, 7, 102, 157, 0, 0, 0, var a = Canvas.createCanvas(96,96)
5, 22, 28, 65, 7, 96, 0, 0, 0, 15, 22, 28, let ctx = a.getContext('2d')
65, 7, 126, 88, 235, 32, 229, 76, 0, 85, 56, 117, console.log(ctx)
63, 0, 9, 22, 28, 65, 7, 61, 156, 95, 228, 82, ctx.font = '94px sans-serif'
0, 0, 0, 129, 1, 22, 28, 65, 7, 214, 14, 236, ctx.fillStyle = '#000'
62, 164, 125, 64, 172, 153, 235, 0, 77, 7, 168, 151, ctx.fillText('😎', -1, 96)
85, 87, 81, 89, 196, 177, 96, 103, 166, 83, 163, 234, console.log(ctx.getImageData(18, 90, 1, 1))
138, 29, 180, 222, 24, 224, 51, 233, 230, 112, 2, 39, \ No newline at end of file
196, 85, 30, 114
]
let res = []
for (let i = 0; i < 64; i++) {
res.push(a[i] ^ b[i])
}
console.log(res+'')
\ No newline at end of file
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -28,7 +28,7 @@ data = { ...@@ -28,7 +28,7 @@ data = {
"isDomestic": False "isDomestic": False
} }
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600' # proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:11052' proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10730'
# proxy = 'http://127.0.0.1:7890' # proxy = 'http://127.0.0.1:7890'
session.proxies = { session.proxies = {
'http': proxy, 'http': proxy,
...@@ -36,7 +36,7 @@ session.proxies = { ...@@ -36,7 +36,7 @@ session.proxies = {
} }
# print(proxy) # print(proxy)
headers = {'Host': 'jbrest.jetblue.com', 'application-channel': 'Desktop_Web', 'sec-ch-ua-platform': '"macOS"', 'sec-ch-ua-mobile': '?0', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36', 'booking-application-type': 'NGB', 'content-type': 'application/json', 'accept': 'application/json', 'api-version': 'v3', 'origin': 'https://www.jetblue.com', 'sec-fetch-site': 'same-site', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', 'x-1itxwo9i-f': 'A92J6LqJAQAArSIZdw4w6NuA1IM5rkx97i7ynGNm0Q-nbus31So9Gxsd0kgqASaWDw2ucirJwH9eCOfvosJeCA==', 'x-1itxwo9i-b': '-iqq3ed', 'x-1itxwo9i-c': 'AKC85LqJAQAAa0giH2njPEV6mS_0qMTsWGDKPoX81PKxBhc1Qpc0OI0Utdky', 'x-1itxwo9i-d': 'ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8AlzQ4jRS12TIAAAAAH29cNgD-i8zHn--rc9IIaE83xjFj', 'x-1itxwo9i-z': 'q', 'x-1itxwo9i-a': 'dvNaAGwR4uRYjWyzuWpAbhtmpsldJH-v08rv3o6CJ_O_9VJHy6vHqy03Tq5c_Id3f5AJSIADW936vgkwkXTUAJZfVDozZe3G-SdjOv9kxUbLVeHyAYIQNWOYixVBsGoB=l1b=rrqc2FTdQlS58o0ouCASXOQd4h11AmpEHu0_NHaE1j6xFFyYw41Yp8Y86hg9zAD_FWUwWOdJbXT2X=yI3zRxQl0OzP0D3CNBAxBiyHhdUOto2XeIssWgehZMp9yWyk36qy2ib=R_xjh9X-SX3J=1jqdtOSP1rfWe2fYnfoyDTLgHfxk8p=UvjG48-fmtTahpW66Zq=nyuxC9gdudO4dG5UzhxGLqiRUqvndjTwCi5CDtzCMjaWbGfoY3i8g4edhhYtkZlzdHZxnDzUAMcW3VUt6KzrVHAsjfe4p3kuWyPrz-H3jwEbgmIg_rcO=bc9FNoCKsObuYEn3vmHw6_l88e=FUKswEgI8bXNnMeSjmuvx-GL5m26oEtUUsf2xNWqVABI93t6=QzLJMWnNYNj1fAdDVfPO3jxMB0xv2ikVEwBj=oYlZWShhOn_8_hZd=blvH92xUd2_bcF8gouER0D18T=Tlm912MJ_omyzqerqANVYXzndV-FLO6u6Qw8nysZHqY89QvdB1x0cRzwEJ0JexW4OARlG1YM8kbhI1i=9DyXUg6tPGKJ4xrhTYBvvcrBzsScerPpMjA3ls41av_LOYyBtEOYtx1MUywzVwIKJLV_Vg0zK=v3eHREWp8ofvVdd0rXM0oLz4TwAFynvN5oPx4oqAQEbgm00ekFhfWjAu5r3BwOfjQvi4AkAKHMplcSva_SGWYgVKEx3zbmw1XIFXqXQsz5GGE63BtzSER4MLfrS0WKflyZFwrS0mQfshSX0MKrBj8YBsJD0-BD2QO3FFRytqj15E3qqBaGbjeBom9ppgNyfDzHvKjNaHxDHqnQsBweGkTr_89W1yLPa8Sm_=qyrArrwp0gVfjlh6kiHNN8FdX2NILfP6YCoX5IUUZTo9WVhGUCDDbDCx9wzeB=PhkG8UadiN1Koo26eNix6eMQ1izduAbFlQRzHQR_hgk=xfFAy9Pq=Yp0VVDuuA4-VUolScbLUhfDKuJV-0_I9VTTDOp5ntwxTQ_Ajl_1caHS2sz=o35Dt-ZJ5xRRmrOI1E8WWe=WLm2ha86p9zEc3ul0KB-PT2l8lJXD5ML9vkTTX8wYnBfMIxDzx1pdWPBeLfjpcrAvz6tzF2R5DfaEw8Z_ovKnyGDQ366a-aEy3vr6qZHIwOqigSyyfP8yX-Ar1=HDkh1PX01fSU6TQdG4b1MCllaQNMDtOuLWALja3XvvWCyIYHU6ITOz5fH58_2Ci=sisrPCzsun9zcFwm4hu2sr9M22l4hKXSV=k8gGYKy2EIR66IpJZYEk-GAMKpMR8vFX2O5wr_PgBfwAmS_5Wj5I2XMr6qQAburk5vvwZuXkm8IeOFt3rAjVJxCwIeA-A0kfaA=zL-AaOCrkgElwJe1Vy9hWY5ljpmgkxBGPkwUaUGRdbdtVgIB=15PNQV0tCwFfud0vTzrlY46NhE3DBJ3rQ6Tsiop1WDopfdoE2B9gMr8riOn9Q42zjcHTrjplyLNE5UcEbTReywQkDw_5QWLCttgmpN1QFtxfYAiE=8djmpHaubU5PUZWr5o0Ka5=KK-CsfG1rwMRxQCBgrrrhD5Tr18o63lpBS24h5ifxTIsKPUO_OPgA5N3AnvYj1K9uaHeqZb6CWEDIrVwfHuzNdgslGFyC3w1qytPsxQor_TLzwfSLlW1SL8dPjwm0ou5BD=NR86DNItjlzaNpDyukXp8LU0nEewvv53O3IArag6z2XCiyqcPKr-CBoz2VbGccBhRaDWewcsPFVEdxYWq5BxYoYkxAlNk5kwDNwG=MIFA8wsOwm4tfMSlvykJSSz4zqYDnUalrABOFlFJ0r5yGFINoIUEc_C4X=mCG=xoizVAA=W3V9DlTBJLZPJnhmoFv1vBKSDeOVgq9dccEy9CXLr4FVgKd6p=dod9ZuUr2ucsD9=deMAlVHThU333egjAPcF5npgylDVTHl9AilKEBA-lir8EpMFM0xBNIUNMWAtsqESMLmJT08zpp8loIF4G5=C5BuMUfjqWXbDaQiPUR3QbRM=8pRZcHs3AodHAowPNDCBbWAsT30gBs0o4prAjbwo6OTTFhXbZnhusUVPDKgi8b-Y0spdvLTglSqkopT-0DXHh8YUvrC3OA-jskn1FSHKiL2HsKXfbbEy6hiq3On6peTjX140ITtxL-oNDNqW6aET5ru19cJcWywOIIllSD-BsdGiwq=Gi6_BtpGEa2P5llsMKvCl3PIIsgJ5fXz9hvIqpfM8xVHi1N=xYrjburpYqUDSx0u4_DzvpHSMq=T_D-4dLi=ViGkNDBFTZC6Fa_o65hrGxmzioT0UVoWmdEDDT-=j9Z-eLdBxQ0HcOJVDS=jFUmJYBugPjmgDpsSnL5e1ly1JdC-YcXH9j_8ldx6kSapQpSIVaA055ifW5DycSpklvvXGyvmRAMfwiRyVfO4JLSfvyj_mzGS1fQ1UeTSASJcye6_PPKItRKLzfnFToNO2QLH1NbSrT05rZwZIRyeo5trHrt=UPAPCmS2uAQaqOVj4EFdOrR8C-JTC-fai4nlVMjSh1sQKm-5lI-yOL5cHXCv=UMQFEQ6vMGnrlVW0c4BFW=Qk3L6c_MLvDV8g=r_mC1uYUlFXq8MZM6WF=d_Z11kLwSpcaWNGKJi2aLfMiAa5vhwTpi9mxjLOPe3-UbtCqM4voiRyT=3EkzQSqZ2eJGdDE4w5QTKp1rUfwEDA6waJtTFbqtZUOGN0B5CwTOg=p1s_OAQZfuipux=mSFWNaaaMO=Bhe8KVX90wxvKG9-phszJXAXOqL0keyDMceCTOMEx09mO-G0iQbitQf02ic-3EpBgUdLh293MJZpGsUwTWFLcZb2hDX_v=H5RiLdF=_WP8Am-nKkGjhiZGVgSQ0wPUNZJ81S6jL=40vHBCgL2gcxY-qZfqzifzlKL2xfaQAtnMz8M5uCVHpNrxuGW5nYmZuflvCZjS5eUkI8I=KtSJNd3_YKzhTofFHe35q3U-RZQ=v_HO2_kygzo2SUmHfOyRqZdFBdP3bqCA-fFoBfQu5XSEV4IEKdqtxkgMq4EiPatCTsNM8N2E84-nq2xrvC1q2hUIaS3e9mb1YMix4j_pPc9f88deEIBl3luD0=yqG8vKJz4sEEvi=b=Fe3gRDGsRe-XLeM1NK=ZER0sx4bqQOzANPOkiLwFyUrVHiCE_ICxInF4aZ=4eoJ5Z0VSNW-1JfrByz2TYCeJ_fNFKOZJg5BJ1XDbxkU=fX2VkMuJePlEmijk3CM0XUUvj9zKGiBDCIlnklhK48n0L6WRxST4Kjd=D-w1tgm=ADQ2yo1qZXFXg491vI-J=1GrFEvV=6n=Z5S5YM_BInYSENc-S0Diow5m0vVx4AyZAxU-501=QZR6=uHuxmf-MjDueP0i4AWOtX_kp_xWgkEKzAcyUsjCE_fIljLP1DCd3DAbCcvXHs=23JkcnQjS-qzGTGNxFYyJptN6PES6i6Mn2=LvxJcub9F=rGnwc2pEDH0rHOlZBMW=ea8w1=5HapPA6XyTmAPN_Oj90t1cDOImNwtd1r4xvqFNKQutdoARDLelrEoj8VZQtlOCNObHfrmNweQrynOQbzd9xWsyAgKOm5M==RNvAqRP2iJjNcQsITDWJgOjcGd1SqOG0XSyxJYuN1EK8WCfs1chWX8_vVY5oitPY-GiUDn-aRhd98UkQVUVFsziT-z=MFv=1gvm068q__oX4H6hJ-OZGN4=FRXAIi8SWPDwmSOnByDaMuuB-pZLhOYuRZWiZk4PjPIcRiNzdG45IDqqvPhIJlAMh2DZaCl6yp00=DSwgw2gVP_MSPGEbO=CuV3w9cqdTK-rVuRX2neQ3lwQBFAGAaVLBSQaXrWpZ9=3RuN98MmLDiEkWfpVoBW=qwAJWFcPNoNzosjCX4iXFbQehO6qhXJmHmHmGEizCtT9nYxqs2bKblUS3NotFcBkjE53Xc_YnDoWVv=zaz_BsDKmotTByll3S=uhL8UUO1zu6z_LBxrSgSBAQLLFBunSDWMtbP-=PqiBgeGJ6qOjqfatckm3syy_5eg03mvM8bsV02AvLlQusaHxtxid-pswaMRwzi4yMfxi0949UwsRNHk2orKb4ZenArZCMwNuXIN1gHDpEMjHJw6KA8R8JkC4WV83B_3f_oeC9DJcveAGuD1=1ifozBLhsTI=cEcdt8wPmz991xSAS38B6pzuaTlFat=b2aXSPpnDiX5x25O9QqkNgPGF4RoYB4GbnZBR4YurUWBzwbI1kmmnKewe3H02I-GtzsPZrfLKGo=JBVDqJQHuQXT9H3QZuRJc2Y_j1Puvsm88r3fg_2i1Kv=X4fIrEtoWuq=LIjb=LhKdjOnw3dhmL=zs9P6YGtZcnEdx4z9HxyVS=6czurqim-JJwe2ePGOmE-BLw5SJPK5SCVau93=9zC_jIyfqoWHoeYACXZaBX2XlHuXzLuk6=h1=isCP=0s5J=nGqGjDx_Cdp5QKMEJTED3bETaX2uU0VhGESTAmN2jv805xuQYfwXTLMNHET2=KOb_KVuyu0gpGuhCQ6pkdTDDllFy-SxZwkQuOh0nLWtnanixiHeOGvFsWn6WEAtNbxX4Iflon1bJb1pvG6HsN5QSY0wvzDGDq9wvC9IJ3iUOSkX3rdj3hj_6RJ2wg=6cRib_4x3kDm8n3KkL9tejsRzUMphxXTeAciHaLGzUgMpaS09spKE2gB2PknHvfBV5wMNDpoIp8FauLqciwL3lNXdbOUHJohU6WdenicLp9Ur4c2Zgg6RnhpnhJoj=RuOSs2FvVWZhfD6dnh9audckgP=jgylKY2I8=EbBdfBupZQaEFCfaSPO5-qyGOOtpXhvaiJAmjoaPTDkiPOMYBQS1jZIA83WXUhEVLGQexiWqwtodoyMrSUyg=bQt3pme2Z19x1v=_m3_qKYLsL=iOh9sVz5MrzDp2xjdN2Otuc4VseyJglT8eW2U4AVZgnrJSjl9h2cYIApFGJLK2tElrzPbruV9Y8kLG-vdtBt93hDzTG0CcMg9S=itgiQo1Dkiuo2-Ib9tFo4WNoxtmLw8d-4Dm1XcJJa55ApDa=9elLAhckBIaF1aFYnHbQgFJ2hvkkVzBsAL09-QT1pUIrN5avPBXYVzaH_E3ky=kmcg9dcodWxX=Kc9SqowX-nz6k8Aq6Xlu3-Tp_vVAhRjtIWYiKSWZWHUTBaAXqfj19kMADiW2ZfiLbe6rN511db3_oRT-8DMHy_gUyR4l59NkUWb68-eLCrrRVlnaM_9Yr-THXBrUGQ292ckRDJYWfSrvte-e41o6xIgwwU9wryjcGjtrbrcTQBfFqaXayMObVGT3GycCZPdOFGjfRS9EOvS9qdPxrYuq0bdeeto1RssbwTryOkgeTA5HmynBlrb6-pAP-d0u1ncZCfeqb1FeoF9AFN_ILQS3Oqss0id_Jfab1ozIcUFyspCFZ1IrmpNaqwD2MpGWkhlLuILYAwWAEjbJfxoy9zyuVb-ySxGCe_ZLCbd2j6K_ws8euz5Tsy6e_Y4vXFmE-66cDWCuBiUN5u_nfjdn=qaeFuQ6ZdZHTIhwe1g_2zvmjMsHkndvhnlFYsqNoGMuKhP44TuSovuI5jwy0xcaWOCyXWKKEIi5PYASGBBUnaoB=0CyKSebtRtcP90cKN3zNnNJsXSagHIMhk_uXHB8eZLtO2pWaUBmCZBr-1NGoETUU53wo2=kUXAKJ-M1eR_J85IpWv_yxSm_Sb-h-0Mhga_nq-Qb5Au1Y6kS4pk_DfYjAJisifT5BfXkq9vqv9En9DvxUNwd2DEcWeHcJL3mjvLRDp22Ab-CHWLOIUDTkmmUK5S8OkgE3VlArzz-oJiIbqxGvxIdU32m2JM1V8kb-3Ibqzds-nvqlFYfv4Zca23t1oRp-klgCl2IRFIWPqMfejoBSMi1efHjo5DHfBgOPyhmtpr-aLAE831=9_DFnxgC4aIgGCjqdylqQcZ0--HPHngT4LAk_igORltLnMNIrToSQIEsQ1-2Xz4=_zmIgd32Xq44JjlqUWruL_rc513u=RVrX'} headers = {'Host': 'jbrest.jetblue.com', 'application-channel': 'Desktop_Web', 'sec-ch-ua-platform': '"macOS"', 'sec-ch-ua-mobile': '?0', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0', 'booking-application-type': 'NGB', 'content-type': 'application/json', 'accept': 'application/json', 'api-version': 'v3', 'origin': 'https://www.jetblue.com', 'sec-fetch-site': 'same-site', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', 'x-1itxwo9i-f': 'AxvBzMmJAQAAaAQ7zgSP4nlKcZSttXsGb9uYkkLY7uLh100Yc-RKVcn629ZUAWe0HDyuchRAwH9eCOfvosJeCA==', 'x-1itxwo9i-b': 'uixy0h', 'x-1itxwo9i-c': 'AIDoycmJAQAAXTn26Pxf_1wI4-I5djOjN3T2MOw-0aPIA0D-voJsBMavdngQ', 'x-1itxwo9i-d': 'ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8AgmwExq92eBAAAAAAH29cNgATB04U6gtu8Zerkf2sfOfx', 'x-1itxwo9i-z': 'q', 'x-1itxwo9i-a': 'IQ8hzLAo5YXL9aH30LKiw8OwGY2HpPNnv5BWJWU6AKbOmW3muL8zYxi0jh6WuRhqMk3UKDMh-xMVBNqos1z0yTHWgLRPDxu5CiJMjAu-sp_Aut3go7bqfI0hvfMc14flP8mN1cXSrI7p5Irr7-TuOjsB_JHzJ2biP7pQrwD3qW9GByOtW3b5uAmpghgv5TMT9NmnrIMzaiw1wGQUxe5w0Nmt3NvmkODRITQuHR81yBWIFBGbWJexl-8bfhVS1YPmdGjabjWjIyHVwgiP9B_AFKVE0TMTvXXksO=LYw92VjpH0W_lQ8NaN8px4FUYcX_09l-yo6PmE=WCNP20rEQ4uDK0ddHtH6woUjxHKXzc6ossSo4NlSDjILznJaa5RHeNTeKDeJeRpdbsMdCaCWd2=YnPDCK4sh1KlV4H68K7fcXTij9rpswKgX1Gp5KNyq8Aj06q6hoeOf4LbB_hFIjy41=fqX_a4gm-D3Fu-srNXg0pwxtUl97gUAo1AgFcGja=Rhm1M9qrUcE1FKpeBTAKC_lhbMkDjioXEbjWALjkmIN8E=fl==UX0X0-nLt5oYUNQnoYIcvPQrGkdp4AUEeYzW=TM5SU1PJkESu4hFuq1SICm3h6VmkTnT4tcqSrM_jMOg6LwR4E2IhmGGM9yXys-ij1GjAyQ9df37W4WbPrjT=TuIqBx_WXgsorJ-6sg0x9vscmiGKl6KqSj1qqudPAneyTfl4Pwv2xd_iPsvK7IA9AxhuR5Rgokal4lV32cuWvuJqkE8INbMi7HtShUlKo4ci7KoHu9FJ-RBX0-G7hR1LwTDW1Gex61KrFjrBD_kasnE6_aN7EUflgrcivkVB2NDsnWu2Y=KJF94TdbF2c1Oyp1QCPGVfbjk7mNxp_EXApSEw13ntT_PX5uwnT=Lq5GUJKs7X9IeLBXQtHp=shuI3knKCCT2kX1N3RdhbAvAszs0-PaSlPWOyBjTrqWKLEr_ppjV8DA3cw45W2g9mO9O6OlfetLUlt90GEAg7JbpmKa1pgyKu1hM5ktq_6KzmJzrmrp4rsFA1b-foV7BFtBJjvWmRPnJeHGwAawvgPKhFhM2zp_p=p2WtB8y0hWFdPb2rJeHLd2kpyMtGPeuEypmu=GnNFJtSpnqHd3RxNFGd0mKfkF9uuUARjPmGCwB=UliB7DMr-=jwLiyNiqt9sl74D1XmoNShkD0LdzvuilzqekrY9M86DXfbDMAB2hPW8Lw3bd=sjdHioVXUaVXOd41eRa6cpgm5lQyHGmdcYct_J0eJRED8nXVNWqHDBH8luCDq5OYALToh64cGtWm_7QHYQhVy2UYrkccvXKaSEIvnlOyN0=H5G2ufUw3PBUKUBCOmxQb7_BaHVtpQ2fzlguGYd-2TLsl7OCLwG9k1fkMJSOdVe6m4_VrXd6VSLQ0JbYzVGcVm97tQuKAbIfi7c'}
response = session.post(url, headers=headers, json=data) response = session.post(url, headers=headers, json=data)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment