启用javascript在https或http后黑莓

Enable javascript in https or http POST blackberry

本文关键字:http javascript https 启用      更新时间:2023-09-26

我正在尝试使用POST方法连接https连接。操作系统版本是6.0,当我在浏览器中调用我的url得到正确的响应,但在我的应用程序我得到错误的响应。我想在post中发送User-Agent。

conn = (HttpsConnection) Connector.open(Url, Connector.READ_WRITE);
conn.setRequestMethod(HttpsConnection.POST);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("User-Agent",
    "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.141 Mobile Safari/534.1+");
conn.setRequestProperty("Content-length", ""+userAgent.getBytes().length);
URLEncodedPostData oPostData = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);
oPostData.append("User-Agent",userAgent);
OutputStream finalOut = conn.openOutputStream();   
finalOut.write(oPostData.getBytes()); 
finalOut.flush();    
finalOut.close();           
rc = conn.getResponseCode(); 

我得到响应代码302,但它的错误响应。所以我的客户说"你需要在应用程序中启用JS代码,因为浏览器正确重定向"。请帮助我如何在代码中启用JS

您正在与服务器进行直接的单个http连接,并且您将获得单个响应(如果连接成功)。与Javascript无关,因为您没有使用浏览器。

302是重定向响应;这意味着服务器希望客户端连接到其他地方。我不记得OTTOMH如果BB的连接器支持自动重定向,但如果是,你可能想启用它。

我在自己的原生BB应用中遇到了类似的情况。事实证明,问题部分在于您使用的是哪一种特定的"通信通道"来连接网络?正如你所了解的,BB有大约6个不同的通道(不包括USB或蓝牙),每个通道都有自己的方式来设置和建立手机和后端之间的连接。

看一下ConnectionFactory,首选传输类型,ConnectionDescriptors和其他相关类,以帮助简化此操作。

接下来,这对你来说是一个问题——就像对我一样——取决于你最终使用什么连接来连接,你可能会从服务器收到302重定向错误。如果真的发生了,也不是什么大问题……只需检查是否存在一个"Location"头字段,它将被添加,这将让你知道你应该使用的新URL来获得所需的资源。

…下面的内容:

if (httpCon.getResponseCode() == 302 && httpCon.getHeaderField("Location") != null)
{
    String redirectedURL = httpCon.getHeaderField("Location");
    // use this in your communications to get your content.
}