submitting a text search using jsoup

匆匆过客 提交于 2020-02-02 15:35:41

问题


I have a piece of html code which represents a part of a website that is supposed to be the search widget for a directory of a faculty in a university

 <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> 

I am trying to input the name "john" and submit the search using jsoup using the following java code (intended for android but it's overall the same java code as for a regular java app)

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

However, I keep getting the same page as just "http://www.qatar.cmu.edu/directory/" with no search submitted. I noticed that in the html code there is the submit input type. I'm wondering if I had to submit the search. If so, how can it be done?


回答1:


I believe you are performing a POST request to the page containing the form, not the forms endpoint. This should work:

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

It makes the POST request directly to the forms endpoint.



来源:https://stackoverflow.com/questions/15184317/submitting-a-text-search-using-jsoup

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!