Google Flight RPC并构建JSON数组


Google Flight RPC and building a JSON array

我正在尝试使用Google Flight RPC,但在构建一个json数组以发布到它时遇到了问题。我找到的唯一文档是这里。它描述了需要发送的内容,但没有解释如何构造json数组。具体来说,使用PHP,我不知道如何使用链接文档第1部分中的以下示例来构建和发布json数组。

[,[[,"fs","[,[,['"SJC'"]'n,'"2012-04-05'",['"EWR'",'"JFK'",'"LGA'"]'n,'"2012-04-12'"]'n]'n"]
]
,[,[[,"b_ca","54"]
,[,"f_ut","search;f=SJC;t=EWR,JFK,LGA;d=2012-04-05;r=2012-04-12"]
,[,"b_lr","11:36"]
,[,"b_lr","1:1528"]
,[,"b_lr","2:1827"]
,[,"b_qu","3"]
,[,"b_qc","1"]
]
]
] 

上面的内容似乎没有正确格式化,无法放入json数组中。此外,还需要HTTP请求头。我想这些是通过cURL设置的?我不清楚如何做到这一点的文件。

我已经尝试了几次,但没有得到文档中显示的任何响应。

编辑:太棒了,我得到了这个问题的汤博乐徽章!我很感激你的帮助。谢谢

我也找不到任何文档。

但是,如果你去https://www.google.com/flights/,打开chrome控制台或firebug,单击网络选项卡,然后运行搜索,你会看到它为RPC POST制作的标题和正文。

传输的示例标头: Request URL:(I BROKE THE LINK) GOOGLE(dot)com /flights/rpc Request Method:POST Status Code:200 OK Request Headers :host:(I BROKE THE LINK) GOOGLE (dot) com :method:POST :path:/flights/rpc :scheme:https :version:HTTP/1.1 accept:/ accept-encoding:gzip,deflate,sdch accept-language:en-US,en;q=0.8 content-length:169 content-type:application/json; charset=UTF-8 cookie:PREF=ID=f472fc4bbb95bc2b:U=9da5b7e4c1d04bda:FF=0:LD=en:TM=1390684154:LM=1390749713:GM=1:S=orUAMb3qaxBh99PJ; HSID=AHlw351sj7B7Om0t_; SSID=AKycPxLzyXkc4_tZJ; APISID=xKH5zAdc9vfBtiDy/Ab5TlD_Z4w2nP64Wl; SAPISID=7awo9qDssc3wr-fN/AQYOdvCN-I-UwtXQ1; NID=67=XnUn_DGdQDaeczlvXe-qTy9vy8gnQwhFwfRi52TRFS-_Dg-J58CgTGUY6Tkn3cCJYCcVJhK8unOrdffpgzeKed2jPqSazVI4Xplo5fW8-6wXoNi97L2gdoaOms0dKj4iOODoZpzd4DG_8YdQQcH6fl5xY__N929CJr8pdcAUwgnKf8X_mI8sLSB7CKVyS4ZvbGMCAiMLwIs1gJJz-UbppSj; S=travel-flights=5OJmMrbJoqLfOFzkZy285A; SID=DQAAAM0AAAAIGD56aXyxAxrRCSROmPy8AEtV3DaEwKT48aaZ98S35Nss09ishDZ3RxNT6ksikfAOJo-MLYVodF3jr-6imwzC8tRd7cxe-OoyafCZiGaf0qhp-yza4VZlAMInxGPhVae7wSXCRXlqb-wbYHBCHUSz_K5kYpvKwqC8pWuQ_6AUZa3WWqB6OmYpxuihxn3UxSve95zpkziyaDX0JFzUjyWX-0O_iIWZiEztywwyKVWCVv27ByGjIYTYV1G2byExt5M9-kEFpE_v0x8KgU7vleT dnt:1 origin:(I BROKE THE LINK) SSL GOOGLE(dot)com referer:(I BROKE THE LINK) SSL GOOGLE(dot)com flights user-agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 x-gwt-cctoken:ADS25WMm8S7W0MlpX1-Lf_yNzQCrke7t6OvH2kFLkBJIH_Q-YTuu8VSHmgIxzFtGaL87SsM5PcZECRBP7IqMCbM5QKFVdWrw9hRIkHoL5oiyCzEu2ZCnKuhqvv2sUKcg4Z_HnajCZmM7aQ9nYsVMQnFxqrkgB2Cz7rAIP47zPJ_rakoyxlGE4yJvcuUeiQ x-gwt-module-base:https://www.google.com/flights/static/ x-gwt-permutation:C8210E5F468630F84E578D8EDE10A1A0 Request Payload [,[[,"no","[]","1531191655318648",11]],[,[[,"b_al","no:74"],[,"b_ahr","no:s"],[,"b_ca","103:34541"],[,"b_pe","4F2F79B9E3FB0.A40E22A.71A7"],[,"b_qu","0"],[,"b_qc","1"]]]] Response Headersview source alternate-protocol:443:quic cache-control:no-cache, no-store, max-age=0, must-revalidate content-encoding:gzip content-length:75 content-type:application/json; charset=utf-8 date:Sat, 22 Feb 2014 05:00:17 GMT expires:Fri, 01 Jan 1990 00:00:00 GMT pragma:no-cache server:GSE status:200 OK version:HTTP/1.1 x-content-type-options:nosniff x-frame-options:SAMEORIGIN x-xss-protection:1; mode=block

因此,要使其正常工作,您可能需要做的是在路径/航班上进行get并读取标头,然后将标头放入POST请求中。(我过去也做过类似的事情)。为了弄清楚什么是字段,我会选择不同的字段,看看它发布的JSON数据有什么变化。