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]