Как получить конкретные учетные данные для каждого запроса на HttpClient?
Проблема в том, что у меня сейчас есть 2-й поток, кажется, заменить предыдущие учетные данные 1-го потока.
Ниже приведен пример кода:
class GetThread extends Thread {
HttpClient httpClient;
private String username,password;
public GetThread(HttpClient httpClient,String username,String password) {
this.httpClient = httpClient;
this.username= username;
this.password= password;
}
public void run() {
Credentials defaultcreds = new UsernamePasswordCredentials(username, password);
httpClient.getState().setCredentials(new AuthScope("dummyhost", 80, AuthScope.ANY_REALM), defaultcreds);
HttpMethod method = new GetMethod("http://dummyhost/RSL/servlets/dv.data");
method.setDoAuthentication(true);
try {
httpClient.executeMethod(method);
byte[] responseBody = method.getResponseBody();
System.out.println(Thread.currentThread().getName()+" "+username+" "+new String(responseBody));
} catch (Exception e) {
e.printStackTrace();
}
finally {
method.releaseConnection();
}
}
}
И вот что я положил в свой основной класс:
MultiThreadedHttpConnectionManager connectionManager =
new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(connectionManager);
GetThread getThread[] = {new GetThread(httpClient, "rsbatch1", "test1234"),
new GetThread(httpClient, "rsbatch12", "test1234")};
for(int i=0;i<getThread.length;i++)
{
getThread[i].start();
}