Blackberry用户代理和https重定向网址

时间:2011-11-11 13:25:30

标签: apache blackberry https httpclient httpconnection

我尝试通过在浏览器中输入值来访问HTTPS连接,它似乎工作正常并将我重定向到预期的页面/输出。但是当我使用代码尝试相同时,我无法得到结果。我尝试将UserAgent设置为(Mozilla / 5.0(BlackBerry; U; BlackBerry 9800; en-GB)AppleWebKit / 534.1 +(KHTML,如Gecko)Version / 6.0.0.141 Mobile Safari / 534.1 +)。但没有运气。我正在获得可信连接警报,当我点击继续时,我得到响应代码302.如何实现安全连接证书以禁用可信连接警报。

我习惯于httpsconnection打开网址,它会返回响应代码302.Again我查了

if (rc == HttpConnection.HTTP_TEMP_REDIRECT
            || rc == HttpConnection.HTTP_MOVED_TEMP
            || rc == HttpConnection.HTTP_MOVED_PERM) {
    String location = conn.getHeaderField("location").trim();
    System.out.println("location========"+location);
    try {
        Url = location;
        newhttpConn = (HttpConnection) Connector.open(Url, Connector.READ_WRITE);
        newhttpConn.setRequestMethod(HttpConnection.POST);
        newhttpConn.setRequestProperty("User-Agent", 
                System.getProperty("browser.useragent"));
    } catch (Exception e) {                               
        System.out.println( e.toString());            
    }

但没有用,我从重定向网址获得相同的302.

编辑:

另外请提供一些想法,以使功能等同于HTTPClient在HTTPSConnection中工作。我怎样才能获得这些功能。如果没有可能在黑莓中使用Httpclient,那么我如何利用与Httpcleint相当的Blackberry https连接(或)来使用HTTPS连接获得自动重定向?

当connector.open(url)执行时,我会像这样

SSL:->CH
SSL:<-SH
SSL:<-SC
SSL:<-SHD
TLS:->CKE
SSL:->CCS
TLS:->F
TLS:<-F
输出控制台中的

然后显示错误的响应。

1 个答案:

答案 0 :(得分:1)

  

我正在获得可信连接警报,当我点击“继续”时,我会收到响应代码302。

这是一种完全预期的行为。

302 means请求的资源位于其他URI上。换句话说,服务器会指示您执行重定向。您应该调查连接标头,在名为“Location”的名称中,您将找到要继续的新URI。关闭/完成当前连接并为刚刚获得的重定向URI启动一个新连接。

<强>更新

通常好的服务器在POST成功后会响应HTTP 302。这是一个已知的Post/Redirect/Get pattern,用于防止用户在浏览器页面刷新时发布相同的数据(用户可以在桌面浏览器中按F5)。因此,如果您通过POST访问的页面是为普通浏览器设计的,那么这可能只是意味着您的POST成功并且您不需要执行重定向请求。至少,如果你需要一些结果评估的响应,那么不要使用POST重定向,这次使用GET。