Yea... I mentioned performance only because there is some overhead in creating a new client, especially if you're talking to servers via SSL as it needs to load the key store, etc.
If this is not a high performance app, then you should be find with this... Bill- On Fri, Dec 2, 2011 at 9:55 AM, vijay kolli <[email protected]>wrote: > So is it fine if we do something like this. This would end up creating > a new http client for each method call. would this not effect any of > the performance > public void send(String message, String url, int timeout) > { > MultiThreadedHttpConnectionManager connectionManager > = new MultiThreadedHttpConnectionManager(); > HttpClient httpClient = new > HttpClient(connectionManager); > HttpConnectionManagerParams managerParams; > managerParams.setSoTimeout(timeout); > connectionManager.setParams(managerParams); > PostMethod post = new PostMethod(url); > String reply = ""; > try > { > String length = message.length() + ""; > post.setRequestHeader("Content-Length", length); > StringRequestEntity postBody = new > StringRequestEntity(message, > "text/xml", "UTF-8"); > post.setRequestEntity(postBody); > int status = httpClient.executeMethod(post); > reply = post.getResponseBodyAsString(); > } > > } > > > > On Thu, Dec 1, 2011 at 4:36 PM, William Speirs <[email protected]> wrote: > > Depending on you performance needs, you could make a new client in each > > send call, and the set the socket timeout. > > > > Bill- > > On Dec 1, 2011 5:22 PM, "vijay kolli" <[email protected]> > wrote: > > > >> i have two threads using the same instance of the HTTPClientTest. two > >> threads call the send method on the same HTTPClientTest. how should i > >> set a different socket timeout for each of those threads that call the > >> send method. if i do something like this within the send method then > >> both threads executing the send method would have same socket timeout. > >> > managerParams.setSoTimeout(60);connectionManager.setParams(managerParams); > >> > >> how should i create a different socket timeout for multiple threads > >> executing the send method on the same instance of HTTPClientTest. > >> > >> public class HTTPClientTest implements Runnable{ > >> private HttpClient httpClient; > >> private MultiThreadedHttpConnectionManager connectionManager; > >> private HttpConnectionManagerParams managerParams; > >> private HttpClientTest() > >> { > >> connectionManager = new MultiThreadedHttpConnectionManager(); > >> httpClient = new HttpClient(connectionManager); > >> } > >> public static synchronized HTTPClientTest getInstance() > >> { > >> if(instance == null) > >> instance = new HTTPClientTest(); > >> return instance; > >> } > >> > >> public void send(String message, String url) > >> { > >> PostMethod post = new PostMethod(url); > >> String reply = ""; > >> String length = message.length() + ""; > >> post.setRequestHeader("Content-Length", length); > >> try > >> { > >> System.out.println("HTTP request: " + message); > >> StringRequestEntity postBody = new > >> StringRequestEntity(message, "text/xml", "UTF-8"); > >> post.setRequestEntity(postBody); > >> int status = httpClient.executeMethod(post); > >> System.out.println("HTTP status: " + status); > >> reply = post.getResponseBodyAsString(); > >> System.out.println("HTTP Post response code: " + reply); > >> > >> } > >> catch(HttpException e) { > >> e.printStackTrace(); > >> } > >> catch(IOException e) > >> { > >> e.printStackTrace(); > >> } > >> catch(Exception e) > >> { > >> e.printStackTrace(); > >> } > >> finally > >> { > >> post.releaseConnection(); > >> } > >> > >> } > >> } > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
