使用jsoup提交文本搜索

时间:2013-03-03 09:30:55

标签: html jsoup

我有一段HTML代码,代表网站的一部分,应该是大学教师目录的搜索小部件

 <div id="right_column" class="content_main"> 
    <div class="searchbox"> 
     <form method="POST" action="/faculty/directory_search/" id="searchform"> 
      <h4>Search the Directory</h4> 
      <input type="text" name="searchterms" value="" /> 
      <select name="category" class="dropdown"> <option value="all" selected="selected">All Categories</option> <option value="Faculty">Faculty</option> <option value="Staff">Staff</option> <option value="Visitors">Visitors</option> <option value="Full time">Full time</option> <option value="Visiting">Visiting</option> <option value="Special Appointment">Special Appointment</option> <option value="Biological Sciences">Biological Sciences</option> </select> 
      <input type="hidden" name="sort" value="asc" /> 
      <input type="submit" class="submit" value="Search directory" /> 
      <a class="button" href="/faculty/index/desc" id="sortbutton">Sort Alphabetically</a> 
     </form> 
     <script type="text/javascript">
                $('#searchform').ready(function(){
                    $('#sortbutton').click(function(){
                        $('input[name="sort"]').val('desc');
                        $('#searchform').submit();
                        return false;
                    });
                });
            </script> 
    </div> 

我正在尝试输入名称“john”并使用以下java代码使用jsoup提交搜索(适用于android,但它与普通java应用程序的java代码完全相同)

Document doc = Jsoup.connect("http://www.qatar.cmu.edu/directory/").data("searchterms", "john").post();

但是,我一直在获取与“http://www.qatar.cmu.edu/directory/”相同的页面而未提交任何搜索。我注意到在html代码中有提交输入类型。我想知道我是否必须提交搜索。如果是这样,怎么办呢?

1 个答案:

答案 0 :(得分:2)

我相信您正在对包含表单的页面执行POST请求,而不是表单端点。这应该有效:

Document doc = Jsoup.connect("http://www.qatar.cmu.edu/faculty/directory_search/").data("searchterms", "john").data("sort", "asc").data("category", "all").post();

它直接向表单端点发出POST请求。