Java Apache HttpClient提交表单



我试图在这个网站上提交一个表单,并从文本区域得到结果拼写错误作为字符串(只有"反向字母"复选框应被选中)。我有下面的代码,改编自这里:

private static void sendPost() throws Exception {
    String url = "http://tools.seobook.com/spelling/keywords-typos.cgi";
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);
    post.setHeader("User-Agent", "Mozilla/5.0"); // add header
    List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    //the input text area
    urlParameters.add(new BasicNameValuePair("user_input", "tomato potato"));   
    //the checkbox
    urlParameters.add(new BasicNameValuePair("reverse_letters", "reverse_letters")); 
    //the submit button (?)
    urlParameters.add(new BasicNameValuePair("", "generate typos"));
    post.setEntity(new UrlEncodedFormEntity(urlParameters));
    HttpResponse response = client.execute(post);
    System.out.println("nSending 'POST' request to URL : " + url);
    System.out.println("Post parameters : " + post.getEntity());
    System.out.println("Response Code : " + 
            response.getStatusLine().getStatusCode());
    BufferedReader rd = new BufferedReader(new InputStreamReader(
            response.getEntity().getContent()));
    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line + "n");
    }
    System.out.println(result.toString());
}

如果我从控制台中复制并粘贴这些行,并在编辑器中搜索拼写错误,那么实际上输入文本和结果文本区域文本包含在这个大字符串中。字符串包含所有的html,但是,我只希望拼写错误的字符串。我如何提取,只有结果拼写错误从这个网站,也许是一个方法作为Apache HttpClient库的一部分,或者我采取了错误的方法?

谢谢,丹

我认为你是在试图把一个方形的钉子放在一个圆洞里,硒可能是一个更好的选择。

Apache http客户端最好用于请求和响应头处理,而不是用于处理响应体

一种更复杂的方法是使用regex的

拆分"result"变量

最新更新