我正在为GPRS调制解调器(Siemens TC65)开发一个Java应用程序。 我多次调用一个方法来对不同的URL进行HttpConnection。有时它工作正常,但有时我被我的操作员重定向(HTTP代码302)。我按照位置标题中提供的URL返回200,但它不是我想要的页面。
如果我在gsm笔中使用SIM卡并使用浏览器访问,有时会发生相同的重定向,但我最终会到达所需的页面。问题是调制解调器不执行Javascript,所以我分析了javascript的作用,程序如下:
第1页 - >第2页 - >第3页 - >想要的页面
Page1和page2对URL和参数进行了一些base64编码,page3是.aspx。因此,每当我获得重定向时,我编码64我的URL并发送到.aspx页面,.aspx页面返回302,并在Location头中解码所需的页面。它甚至返回一个带有ASP.NET_SessionId的cookie,我保存并在下一个请求中发送。
但即使我做了所有这些并遵循.aspx返回的URL(这与我开始时相同),它只是从头开始,我得到一个无限循环的重定向。
我可以发布代码,但我不认为它有任何问题,因为它工作正常,有时......问题是运营商的连续重定向,而不是运行浏览器。
在尝试从aspx服务器进行重定向时,我应该做些什么?
有人有类似的问题吗? 我非常感谢任何帮助。
提前致谢! 雨果
答案 0 :(得分:1)
我设法让它发挥作用。
我正在做的是在我的程序中用我自己的代码替换page2中的javascript,因为调制解调器无法运行javascript。并使用结果并将其发送到page3。这很好但我实际上没有向page2发出HTTP请求。
如果我按照正确的顺序请求三个页面,复制javascript在我自己的代码中执行的功能并保存cookie,在第3页之后我收到重定向到所需的网页,并且不再像使用它那样重定向至。我想,因为我做了所有的第2页,我真的不需要提出请求,只是跳到第3页。但由于某些原因,我这样做,我不知道为什么,也许asp会话实际上在该页面上开始并且没有显示在页面源代码上或服务器监视页面请求。我甚至不明白为什么运营商需要这样做,我认为它甚至可能会破坏旧手机的HTTP连接,因为它不是真正设计用于无法运行javascript的设备。
下次我将使用不同的operator = p
感谢Charles Forsythe的提示和帮助。