我在使用Apache HttpClient 4.5.6与PowerSchool系统接口时遇到问题。我遗漏了对于这个问题不是必需的方法,但是我100%确信它们可以按预期工作。
使用Postman或request.py时,使用完全相同的表单数据(我已经在python,java和Firefox上进行了验证),我得到了所需的HTML页面,其中包含所需的等级和类别信息,介于{{ 1}}和<!-- start student content -->
注释(超过1000行)。但是,在Java中使用相同的表单数据和标头时,结果HTML页面仅包含以下内容:
<!-- end student content -->
这两个不同结果之间的脱节对我来说是没有意义的,因为据我所知Postman和request.py不会执行javascript。我希望HttpClient的结果是相同的。这是我的代码:
<!-- start student content -->
<div id="quickLookup">
<tr>
<th class="right" colspan="19">Attendance Totals</th>
<th>0</th>
<th>0</th>
</table>
<table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td align="center">Current Cumulative GPA (Q1): X.XXXX</td>
</tr>
<tr>
<td align="center"><a href="home.html?schoolid=XXXX&showdropped=true&91146885685933636948">Show dropped classes also</a></td>
</tr>
</table>
<tr>
<th class="right" colspan="10">Attendance Totals</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
</table>
</div>
<!-- end student content -->
注意:完全没有身份验证问题,除了该细节之外,页面通常会返回。
答案 0 :(得分:0)
据我了解,
HttpPost postMethod = new HttpPost(baseUrl + "guardian/home.html");
home.html不包含任何服务器站点脚本,可以使用javascript或使用Ajax调用另一个api来填充数据。
所以来自Java,
HttpResponse resp2 = client.execute(getMethod);
正在获取html并响应html
答案 1 :(得分:0)
我遵循完全相同的逻辑最终使用了Jsoup,并得到了我想要的结果。仍然不知道为什么HttpClient无法正常工作。