问题描述
我正在研究一个学校项目,我必须在其中发送数据并获取响应。我被卡住了,因为我不知道该怎么做。 我尝试使用Jsoup发送数据,但响应为“ null”。 我已经在我的应用程序中创建了一个搜索栏,我想将该值从此搜索栏发送到下面提到的网站,并接收数据列表。
链接:http://www.climatefinder.com/advanced_search/
我可以这样做吗?可能吗?另外,如果我做错了,请建议我正确的路径。
解决方法
如果您真的希望这项作业变成一项艰巨的项目,那么您面前的任务就很艰巨了。最大的工作就是解析期望的返回值。
这是Java脚本将HTML <FORM>
元素(包括在下面)发布到服务器。您将必须隔离这种形式的所有变量,并找出要在这些变量中插入值的内容。然后,您必须制定一个 HTTP GET请求。
无论如何,:由于来自网络服务器的返回值是某种地图 AND ,因为返回的地图是Google API Map
,因此还要做更多的工作来弄清楚这一点。
如果您想继续,并且已经可以阅读HTML FORMS
,请选择值以向这些<FORM> <INPUT>
变量分配一个您希望用于天气模式选择的值,然后调用Java -脚本。同样,JSoup
可能无法解析返回的内容,因为这是Google Map的API,因此您必须通过选择 Java Script API for Google Maps
来解析响应。我所知道的唯一的 Java Script Parser
是古老的,被称为 Rhino Project
。
注意::表单的第一行显示网络服务器正在监听 #
-这意味着它监听的是您检索到的相同URL该页面来自:
http://www.climatefinder.com/advanced_search/
祝你好运!
<form action="#" enctype="multipart/form-data" method="post">
<table style="border-collapse:separate;border-spacing:10px;margin-bottom:30px;">
<tr>
<th>Variable</th><th>At least</th>
<th></th>
<th>At most</th>
</tr>
<tr>
<td style="width:300px;">Average daily minimum temperature</td>
<td style="width:75px;">
<input id="tmnmin" name="tmnmin" type="hidden" value="-14.00" />
<span id="tmnmintxt">-14.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="tmnslider"></div>
</td>
<td style="width:75px;">
<input id="tmnmax" name="tmnmax" type="hidden" value="16.00" />
<span id="tmnmaxtxt">16.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Average daily temperature</td>
<td style="width:75px;">
<input id="tmpmin" name="tmpmin" type="hidden" value="-22.00" />
<span id="tmpmintxt">-22.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="tmpslider"></div>
</td>
<td style="width:75px;">
<input id="tmpmax" name="tmpmax" type="hidden" value="11.00" />
<span id="tmpmaxtxt">11.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Average daily maximum temperature</td>
<td style="width:75px;">
<input id="tmxmin" name="tmxmin" type="hidden" value="-20.00" />
<span id="tmxmintxt">-20.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="tmxslider"></div>
</td>
<td style="width:75px;">
<input id="tmxmax" name="tmxmax" type="hidden" value="26.00" />
<span id="tmxmaxtxt">26.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Monthly precipitation</td>
<td style="width:75px;">
<input id="premin" name="premin" type="hidden" value="660.00" />
<span id="premintxt">660.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="preslider"></div>
</td>
<td style="width:75px;">
<input id="premax" name="premax" type="hidden" value="1330.00" />
<span id="premaxtxt">1330.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Days with >0.1mm rain per month</td>
<td style="width:75px;">
<input id="rd0min" name="rd0min" type="hidden" value="15.00" />
<span id="rd0mintxt">15.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="rd0slider"></div>
</td>
<td style="width:75px;">
<input id="rd0max" name="rd0max" type="hidden" value="31.00" />
<span id="rd0maxtxt">31.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Wind speed</td>
<td style="width:75px;">
<input id="wndmin" name="wndmin" type="hidden" value="3.20" />
<span id="wndmintxt">3.20</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="wndslider"></div>
</td>
<td style="width:75px;">
<input id="wndmax" name="wndmax" type="hidden" value="7.00" />
<span id="wndmaxtxt">7.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Sunshine as proportion of day length</td>
<td style="width:75px;"><input id="sunpmin" name="sunpmin" type="hidden" value="0.00" />
<span id="sunpmintxt">0.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="sunpslider"></div>
</td>
<td style="width:75px;">
<input id="sunpmax" name="sunpmax" type="hidden" value="57.00" />
<span id="sunpmaxtxt">57.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Days with ground frost per month</td>
<td style="width:75px;">
<input id="frsmin" name="frsmin" type="hidden" value="0.00" />
<span id="frsmintxt">0.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="frsslider"></div>
</td>
<td style="width:75px;">
<input id="frsmax" name="frsmax" type="hidden" value="17.00" />
<span id="frsmaxtxt">17.00</span>
</td>
</tr>
<tr>
<td style="width:300px;">Relative humidity</td>
<td style="width:75px;">
<input id="rehmin" name="rehmin" type="hidden" value="0.00" />
<span id="rehmintxt">0.00</span>
</td>
<td style="padding-top:0px;padding-left:20px;padding-right:20px;padding-bottom:0px;width:350px;">
<div id="rehslider"></div>
</td>
<td style="width:75px;">
<input id="rehmax" name="rehmax" type="hidden" value="53.00" />
<span id="rehmaxtxt">53.00</span>
</td>
</tr>
</table>
<table style="border-collapse:separate;border-spacing:10px 0;text-align:center;margin-bottom:30px;">
<tr>
<th colspan="12">Criteria apply in:</th>
</tr>
<tr>
<td style="">Jan</td>
<td style="">Feb</td>
<td style="">Mar</td>
<td style="">Apr</td>
<td style="">May</td>
<td style="">Jun</td>
<td style="">Jul</td>
<td style="">Aug</td>
<td style="">Sep</td>
<td style="">Oct</td>
<td style="">Nov</td>
<td style="">Dec</td>
</tr>
<tr>
<td style=""><input class="month" name="month1" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month2" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month3" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month4" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month5" type="checkbox" value="on" /></td>
<td style=""><input checked="checked" class="month" name="month6" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month7" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month8" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month9" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month10" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month11" type="checkbox" value="on" /></td>
<td style=""><input class="month" name="month12" type="checkbox" value="on" /></td>
</tr>
</table>
<input class="btn btn-primary highlightbutton" id="submitadvanced" name="submitmetricadvanced" type="submit" value="Find Places with this Climate" />
<div style="display:none;">
<input name="_formkey" type="hidden" value="bf4ad5df-fce3-4bed-b7e2-42f52c0bb431" />
<input name="_formname" type="hidden" value="newform" />
</div>
</form>
再次,反应更加毛茸茸。您将必须能够使用 Rhino Java Script Parser
,或使用您自己的字符串解析算法。这是与 Google Maps API
var markerJEG = new google.maps.Marker({
position: {lat: 68.7218,lng: -52.7847 },map: map,title: "Aasiaat,Greenland",icon: { path: google.maps.SymbolPath.CIRCLE,scale: 4,strokeColor: 'black',fillColor: 'red',strokeWeight: 1,fillOpacity: 1 },});
google.maps.event.addListener(markerJEG,'click',function() {
infowindow.setContent('Aasiaat,Greenland<br/><a href="/places/BGAA" target="_blank">More info</a>');
infowindow.open(map,markerJEG);
});
var markerUAK = new google.maps.Marker({
position: {lat: 61.1605,lng: -45.426 },title: "Narsarsuaq,});
google.maps.event.addListener(markerUAK,function() {
infowindow.setContent('Narsarsuaq,Greenland<br/><a href="/places/BGBW" target="_blank">More info</a>');
infowindow.open(map,markerUAK);
});