1

我正在构建一个简单的 android 应用程序,它向这个站点http://www.ap-ljubljana.si/vozni_red2/VR2.php发送一个 http post 请求,然后根据 post 请求获得适当的响应。问题是我的应用程序没有得到与浏览器相同的响应。任何想法为什么?

文件

`HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.ap-ljubljana.si/vozni_red2/VR3.php");

    try{

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("VSTOP_ID", "1"));
        nameValuePairs.add(new BasicNameValuePair("IZSTOP_ID","1"));
        nameValuePairs.add(new BasicNameValuePair("btnNext", "Naprej"));

        httppost.setHeader("Cache-Control", "max-age=0");
        httppost.setHeader("Origin", "http://www.ap-ljubljana.si");
        httppost.setHeader("Referer", "http://www.ap-ljubljana.si/vozni_red2/VR2.php?DATUM="+datum+"&VSTOP_IME=Vstop...&IZSTOP_IME=Izstop...");
        httppost.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        httppost.setHeader("DNT", "1");
        httppost.setHeader("Accept-Encoding", "gzip,deflate,sdch");
        httppost.setHeader("Accept-Language", "sl-SI,sl;q=0.8,en-GB;q=0.6,en;q=0.4");
        httppost.setHeader("Accept-Charset", "ISO-8859-2,utf-8;q=0.7,*;q=0.3");
        //httppost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));

        return httpclient.execute(httppost);

    }
    catch (ClientProtocolException e){

        return null;
    }
    catch (IOException e){

        return null;
    }`

浏览器的http post请求

http://i45.tinypic.com/zvqww7.jpg

4

2 回答 2

0

我认为您没有点击确切的 URL,因为您点击的 URL 不是 API,AFAIT,因为这是指向它的网页 URL。

在浏览器中,当您这样做时,还有其他 API 链接正在执行任务,并且您会得到正确的响应,因为网页是这样构建的,以帮助您了解响应结果,但是当您在此链接上执行此操作时,它实际上返回了上述 php 链接的内容,而主要工作由其他 API 链接完成。

如果我错了,请告诉我,以便我可以帮助你。

于 2012-07-02T12:49:22.717 回答
0

您的APP请求中缺少cookie信息。可能是造成问题。我认为一些服务器端调试可以解决这个问题。

于 2012-07-02T12:32:26.553 回答