I need to consider performance in my application. I am just doing a normal http connection nothing like via SSL. So what could be the overhead of creating a separate httpclient on each send call.
On Fri, Dec 2, 2011 at 9:24 AM, William Speirs <[email protected]> wrote: > 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] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
