Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Google flight RPC JSON响应_Android_Json_Http Post_Rpc_Json Rpc - Fatal编程技术网

Android Google flight RPC JSON响应

Android Google flight RPC JSON响应,android,json,http-post,rpc,json-rpc,Android,Json,Http Post,Rpc,Json Rpc,我试图从Google Flight页面获取JSON响应。我查阅了下面的教程,其中解释了如何获取JSON响应。因此,我在Android中创建了一个HttpPost请求,并添加了从Google chrome获取的所有必需的头,以模拟请求(我在chrome浏览器中检查请求/响应)。我的问题是如何获得JSON响应。这是我目前的代码 public class SearchScreen extends Activity { private static final String URL = "http://

我试图从Google Flight页面获取JSON响应。我查阅了下面的教程,其中解释了如何获取JSON响应。因此,我在Android中创建了一个HttpPost请求,并添加了从Google chrome获取的所有必需的头,以模拟请求(我在chrome浏览器中检查请求/响应)。我的问题是如何获得JSON响应。这是我目前的代码

public class SearchScreen extends Activity {
private static final String URL = "http://www.google.com/flights/rpc";
                                //"www.google.com/flights/#search;f=SJC;t=EWR,JFK,LGA;d=2012-04-05;r=2012-04-12"

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search_screen);
    new AirplaneDetailsAsyncTask().execute(URL);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.search_screen, menu);
    return true;
}

private class AirplaneDetailsAsyncTask extends
        AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... urls) {


        DefaultHttpClient client = new DefaultHttpClient();
        HttpResponse response;
        HttpPost post = new HttpPost(urls[0]);
        try {
            post.setEntity(new StringEntity(streamToString(getAssets().open("json_payload.txt"))));
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        post.addHeader("Host", "www.google.com");
        post.addHeader("Content-Type", "application/json; charset=utf-8");
        post.addHeader("X-GWT-Permutation",
                "C8210E5F468630F84E578D8EDE10A1A0");
        post.addHeader("X-GWT-Module-Base",
                "http://www.google.com/flights/static/");
        post.addHeader("Referer", "http://www.google.com/flights/");
        post.addHeader(
                "Cookie",
                "PREF=ID=e2a92b3380d7d27f:U=3d554774092713bb:LD=en:TM=1358479701:LM=1380698072:DV=ItTa9H05UtgwsKnDG0OzXrRI8wzwgvK6-YzRssPfBQAAACoAp5J-Wg59AQAAAA:GM=1:S=UCXKy-x_emr9K3SO; HSID=AgVJtn-g2CDMiOMYl; SSID=A4yKK8G7fF8e5M01T; APISID=s-DKCLDgya0AD2eY/ArIOuAT3DXpIkznme; SAPISID=muzbz8j6Wy5YybG8/A3d1OIAjmhDsC_WXo; NID=67=wDEHoc3k9xdwS2WTBxz5Q0fzrmmwHphYHoKamTgFPUb17DwM-dFWJp4sJdEciRCn9RH7wdk1b97eF94zZS0IZ9SgTddQnLr5ht8Qsc2esrtU2LIlcIHyFVC9RRWs4h1f2rMCxGeWybkU_dgiqrqr2UQHkSSJSemCfxJV_FhF-gEG6b8KKjzWKzsBVtQS0gUG7g6rFZkDPDwZU-yD25Hh3-XoQkkTQoIG7k-y3pTG06-J-tUjRMNZbjBzoBN_ZYZRowSOCXJlkuSUku-SpEaDKd7IoUJ5Z3fBSzU; S=account-recovery=4KJarpZsJ5s:travel-flights=bFOuuLXsJoYhlhLnM7sMuQ; SID=DQAAAIQCAADA-EGq6XJtdkoCOaR9Dot7zk6oOuGFKSWS3t2aWMaB6rGfOleOuhydcutRWbQst5pTXflQuHHdqf8XlzHMxEdXTNDF4So282agqwLuI0b4TdEnOHKIxr1ToYtELmE5PaP-0tfDoF3NRFVSlnIfip0ty7AZGUX3oBv8ejSIn3Z-jn_Pd-Dg4Y4WOa70W9noFxkH0lok1-fk4TSUjZEhJRJPu4LydNCQFWjRJ6EMW22twsAHHTSqt92Nj4tFY9zzaJer7PIiYL7VU3SmGRwNRESR-vq-lEyDexnjoVgx5p0ck1lvGRI1CQ8RlAGSMoA0obU8fDspcQG4o2bugltVCb080aSjpi_JWyJhZOTI7dwYl8po7Z1ztf98PeS6uf2fFM1kaZ2DynIWfuDOWSh1TLsW24l3x4rIrEthH3NTd1f_lMyfyiRkMoiTKPaeqo-S1V-7_YzqJA8Us0L8q2ChW641nbEHTtURvoj0g8vNKrSfP0AgvxUb1Hmh2v2EzlHoTsAEkf8GYlCAP-VV6Z50IaNW93NUxSc-pD1TLSXL_tNqV0pG4IXJf1RD6dST2xojvZjEdznMXqTughtt1jdOp_2RaQSauOSCOUYE9v7MUmn4CxE1LfvFHW2Hq5zaErOjj5GmBSd-8n6M0BaBv2Kx7MdU3wwGgZJYVdwaTbnl1a6-BsXbUARSZIbQZ6plwUGjHGiWLvFoGY3l2YElBX9irN46Mts87A8kb2tSXuN6DOhRurdebChUkXYxcAt0OcoXIYTiTrQWr4QpPfrX1pt2imQqRTlj1E0t8nkg684tKbF6w2Fsul06Wlq1yIHFOdVffklF7BSSoFNS8oAAG-JfOYJu_-FuRQQbXlBazJUsa_DO-w");
        post.addHeader("Pragma", "no-cache");
        //post.addHeader("Content-Length","1255");
        post.addHeader("Cache-Control", "no-cache");
        String entityBody;
        try {
            response = client.execute(post);
            int respnseCode = response.getStatusLine().getStatusCode();
            switch (respnseCode) {
            case 200:
                HttpEntity entity = response.getEntity();

                if (entity != null) {
                    entityBody = EntityUtils.toString(entity);
                    Log.d("Entity", entityBody);

                }
                break;

            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;
    }
    private String streamToString(InputStream inputStream ){
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder total = new StringBuilder();
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                total.append(line);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return total.toString();
    }

}
公共类搜索屏幕扩展活动{
私有静态最终字符串URL=”http://www.google.com/flights/rpc";
//“www.google.com/flights/#search;f=SJC;t=EWR,JFK,LGA;d=2012-04-05;r=2012-04-12”
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u search\u屏幕);
新AirplaneDetailsAsyncTask().execute(URL);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单搜索屏幕,菜单);
返回true;
}
私有类AirplaneDetailsAsyncTask扩展
异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
DefaultHttpClient=新的DefaultHttpClient();
HttpResponse响应;
HttpPost=新的HttpPost(URL[0]);
试一试{
setEntity(新的StringEntity(streamToString(getAssets().open(“json_payload.txt”)));
}捕获(不支持DencodingException e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
post.addHeader(“主机”,“www.google.com”);
addHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
post.addHeader(“X-GWT-Permutation”,
“C8210E5F4680F84E578D8EDE1A1A0”);
post.addHeader(“X-GWT-Module-Base”,
"http://www.google.com/flights/static/");
post.addHeader(“Referer”http://www.google.com/flights/");
post.addHeader(
“饼干”,
“PREF=参考参考[[[[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[1:3]参考[1:3]参考[3:3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3]参考[3:3]参考[3]参考[3:4=135848479797017 7:7 7:7 7 7:7 7 7 7 7:7 7 7 7 7:7 7 7 7 7 7 7:1:1:1:1:1:1:1:1:1:7=8=8=8=7=7=7=7-G2-G8-G8-G8-8-2-8-8-8-8-8-8-8-8-8-8-8-8-8-8-2-8-8-8-8-8-8-8-8 67=wDEHoc3k9xdwS2WTBxz5Q0fzrmmwHphYHoKam2)2)2)2)2)2)2(2)2)2)2(2)2)2)2)2)2)2)2)2)2)2)2)2)2)2(2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2(2)2)2)2)2(2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2 EGq6XJ2.中国科技大学的目标是在未来的一个目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标的目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标目标JWYJZOTI7月8日,一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,并作为一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,作为一家媒体发布了一份研究报告,作为一份2月2月8日的一份研究报告,作为一份2月2月2月6日,作为一家媒体发布了一份在一份研究的一份研究报告,作为一份2月2月2月6月6月6月6月6日,作为一份在一份在一份在一份2月6月6月6月6月6月6月6月6月6月6月6月6日的一份研究报告,作为作为一份一份在一份在一份在一份在一份在一份在一份在一份在一份在一份在一份研究报告中BsXbUARSZIbQZ6plwUGjHGiWL-BsXbUARSZIbQZ6plwUGjHGiWLvFogy3l2YELBx9IRN46MTS87A8kb2tsxUn6DohrurdebchukxCat0OcoxitytRqWR4QppfRx1Pt2MQQRTLJ1E0T8NKG684TkbF6W2Sul06WLQ1YIhfodvFKlf7B7SSOFNS8OAG-JfOYJu_qBxlBazjusa_u-w”);
post.addHeader(“Pragma”,“无缓存”);
//post.addHeader(“内容长度”、“1255”);
post.addHeader(“缓存控制”、“无缓存”);
字符串实体;
试一试{
响应=client.execute(post);
int respnseCode=response.getStatusLine().getStatusCode();
开关(响应代码){
案例200:
HttpEntity=response.getEntity();
如果(实体!=null){
entityBody=EntityUtils.toString(实体);
Log.d(“实体”,entityBody);
}
打破
}
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
私有字符串streamToString(InputStream InputStream){
BufferedReader reader=新的BufferedReader(新的InputStreamReader(inputStream));
StringBuilder总计=新StringBuilder();
弦线;
试一试{
而((line=reader.readLine())!=null){
合计.追加(行);
}
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回total.toString();
}
}
}

下面是我收到的响应字符串

航班-谷歌搜索 varJS_ILT=新日期(); #gbar,#guser{字体大小:13px;填充顶部:1px!重要;}gbar{高度:22px}填充底部:7px!重要;文本对齐:右}。gbh,.gbd{边框顶部:1px实心#c9d7f1;字体大小:1px}。gbh{高度:0;位置:绝对;顶部:24px;宽度:100%}@media所有{媒体。gb1高度:22px;边距:22px;垂直:1px实心#c9d7f1;字体大小:1px}。gbh{{文本装饰:下划线!重要}a.gb1,a.gb4{颜色:#00c!重要}.gbi.gb4{颜色:#dd8e27!重要}.gbf.gb4{颜色:#900!重要} varJS_INI=“[,[,[,[14108811151179171116611178111117110641143110511061133102311091174100601043116316111541159120211150116011561172,15,10],[,\42USD\42,42$\42,42\