httpclient提供不同的结果

时间:2018-09-25 02:17:28

标签: java httprequest apache-httpclient-4.x powerschool

我在使用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 -->

注意:完全没有身份验证问题,除了该细节之外,页面通常会返回。

2 个答案:

答案 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无法正常工作。