使用Java HttpClient通过443用户ID密码提示身份验证发送GET请求

时间:2014-07-25 10:37:04

标签: java apache-commons-httpclient

我想通过发送url参数(GET参数)从url获取响应 例如。 https://ebctest.cybersource.com/ebctest/DownloadReport/2014/07/23/ $ MERCHANTID / ConversionDetailReport.xml

当我点击服务器时,我会被用户ID密码对话框提示。

我可以通过手动输入id,密码来获得响应。 如何使用java以编程方式实现此目的。

以下是我迄今为止尝试过的代码。

final HttpClient httpClient = new HttpClient();
httpClient.getState().setCredentials(new AuthScope(null, 443), new UsernamePasswordCredentials(userName, password));
httpClient.getParams().setParameter("http.socket.timeout", Integer.valueOf(10000));
httpClient.getState().setAuthenticationPreemptive(true);            

final GetMethod method = new GetMethod("https://ebctest.cybersource.com/ebctest/DownloadReport/2014/07/23/$merchantId/ConversionDetailReport.xml");

final InputSource is = new InputSource(new ByteArrayInputStream(method.getResponseBody()));

当我做method.getResponseBody时,我变空了。当我手动发送请求时,我应该得到正确的响应。

1 个答案:

答案 0 :(得分:1)

它看起来像基本身份验证,您应该能够通过调用此URL发送用户名和密码:

的https:// <强>用户名密码 @ ebctest.cybersource.com / ebctest / d