1

我有一段 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”并使用 jsoup 使用以下 java 代码提交搜索(适用于 android,但总体上与常规 java 应用程序的 java 代码相同)

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

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

4

1 回答 1

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 请求。

于 2013-03-03T09:44:54.420 回答