0

レポートを開くための URL が 1 つある asp.net アプリケーションがあり、apache http クライアントを使用してこのレポートをエクスポートしようとしています。

 DefaultHttpClient httpclient = new DefaultHttpClient();
     try {

         /* POST login */
         HttpPost httpost = new HttpPost("http://localhost:80");

         List <NameValuePair> nvps = new ArrayList <NameValuePair>();
         nvps.add(new BasicNameValuePair("login", "e"));
         nvps.add(new BasicNameValuePair("pw", "password"));

         httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
         HttpResponse response = httpclient.execute(httpost);
         HttpEntity entity = response.getEntity();
         System.out.println("Login form get: " + response.getStatusLine());
         EntityUtils.consume(entity);

         /* get content*/
         HttpGet httpget = new HttpGet("http://localhost:80/Report);

         System.out.println("executing request " + httpget.getURI());

         // Create a response handler
         ResponseHandler<String> responseHandler = new BasicResponseHandler();
         String responseBody = httpclient.execute(httpget, responseHandler);
         System.out.println("----------------------------------------");
         System.out.println(responseBody);
         System.out.println("----------------------------------------");


     } finally {
         // When HttpClient instance is no longer needed,
         // shut down the connection manager to ensure
         // immediate deallocation of all system resources
         httpclient.getConnectionManager().shutdown();
     }
 }

localhost:80/Report がレポート ページであり、レポートを csv にエクスポートするボタンが 1 つあるとします。これを行うには、レポート セッションとコントロール ID が必要です。いくつかの調査の後、 csv へのエクスポートをクリックすると、この get メソッドが取得されます。 =OnlyHtmlInline&Format=CSV"

  1. レポート セッションとコントロール ID を取得する方法
  2. レポートをエクスポートするには?私はすでに同じセッションとコントロールID内でHttpGetをgetメソッドに変更していますが、まだ機能していません..

私はこれを正しくやっていますか?私はApache httpclientのまったく新しいので..

4

1 に答える 1

0

htmlunit.sourceforge.net を試す

@Test
public void submittingForm() throws Exception {
    final WebClient webClient = new WebClient();

    // Get the first page
    final HtmlPage page1 = webClient.getPage("http://some_url");

    // Get the form that we are dealing with and within that form, 
    // find the submit button and the field that we want to change.
    final HtmlForm form = page1.getFormByName("myform");

    final HtmlSubmitInput button = form.getInputByName("submitbutton");
    final HtmlTextInput textField = form.getInputByName("userid");

    // Change the value of the text field
    textField.setValueAttribute("root");

    // Now submit the form by clicking the button and get back the second page.
    final HtmlPage page2 = button.click();

    webClient.closeAllWindows();
}

ここに開始リンクがありますhttp://htmlunit.sourceforge.net/gettingStarted.html

于 2013-09-13T10:29:19.130 に答える