Hi Oleg, On Mon, Apr 23, 2012 at 5:44 PM, Oleg Kalnichevski <[email protected]> wrote:
> On Mon, Apr 23, 2012 at 02:40:08AM +0530, Kishanthan Thangarajah wrote: > > Hi Oleg, > > > > On Sun, Apr 22, 2012 at 5:45 PM, Oleg Kalnichevski <[email protected]> > wrote: > > > > > On Sun, 2012-04-22 at 16:09 +0530, Kishanthan Thangarajah wrote: > > > > Hi All, > > > > We are in the process of supporting httpclient4 in axis2 [1] along > with > > > > httpclient3 implementation. Since most of the httpclient4 > implementations > > > > are new from 3, we have some questions on proceeding with it. With > > > > httpcleint 3, we used RequestEntity class in creating a Request > entity > > > > which will be used in wrapping the axis2 message object. Then this > will > > > be > > > > used by axis2 http sender in every request. With httpclient4, in > getting > > > > the same thing done, we are using HttpEntity. > > > > But with HttpEntity, we have to implement getContent() method in > getting > > > > the request entity content. This method returns an InputStream. So > what > > > we > > > > did was, return a ByteArrayInputStream of the message in the method > impl. > > > > (ie *return new ByteArrayInputStream(message.getBytes()*). But is > this > > > the > > > > best way of handling this, method considering performance.? > > > > We figured out this way by referring to some of the available impl of > > > this > > > > method, such as in ByteArrayEntity etc. > > > > > > > > Thanks, > > > > Kishanthan. > > > > > > > > [1] https://issues.apache.org/jira/browse/AXIS2-4318 > > > > > > Kishanthan > > > > > > The HttpEntity interface is used to represent content body of both > > > incoming and outgoing messages. As far as HTTP request messages on the > > > client side are concerned only #writeTo method is actually used when > > > writing the request content out to the underlying connection. One > should > > > provide the #getContent method for the sake of completeness but the > > > implementation of this method will have no impact on performance of the > > > Axis2 HTTP transport. > > > > > > Hope this helps > > > > > > > Thanks for the reply. Yes, it does help. FYI this[1] is the > > current implementation, where the method getRequestEntityContent() is > > called in the getContent() method of our HttpEntity impl. > > > > Looks reasonable to me.` > > > > I have some more questions. > > We used the following code segment in setting a default timeout for > > connection manager in httpclient3. > > > *httpClient.getParams().setConnectionManagerTimeout(**connectionTimeoutValue > > **). *How can i do the same with httpclient4.? > > I have gone through the tutorial and found that we can set timeouts for > > httpclient or httpmethods by setting a parameter as > > > *httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, > > connectionTimeoutValue). *But does this set the timeout for connection > > manager as-well? > > > > Yes, it does. As of version 4.1 HttpClient uses connect timeout value for > connection lease requests. > > > > In httpclient3, when setting proxy credentials we used > > *httpClient.getState().setProxyCredentials(AuthScope.ANY, > > proxyCredentials). *So to do the same in 4, if i call > > *httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY, > > proxyCredentials), *will it be ok.?. > > It should be OK. > > > Also can this way be used in setting > > other credentials (NTCredentials or UsernamePasswordCredentials) as-well > ? > > > > Yes, it can. > > > > Also i found that most of the parameters are set or get using the > > respective methods in 3. But the same can be done by calling only the > > setParameter and providing the correct constants such > > as CoreConnectionPNames, ClientPNames, etc. > > > > There static convenience methods as well as HTTP parameter beans that can > be used to get / set HTTP parameters [1] > Thanks for those inputs. I think i'm on the write direction and i'm working forward with the implementation. If i need more information, ill contact again. > HttpClient configuration is the single most complained about aspect of the > 4.x API. I wish we had done it differently. I am considering investing some > effort into trying to fix the problem in the 4.3 release series. > Looking forward for the new release as well. Kishanthan. > > Oleg > > [1] > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html#d5e339 > > > > Thanks, > > Kishanthan. > > [1] > > > http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4318/modules/transport/http/src/org/apache/axis2/transport/http/AxisRequestEntity.java?revision=1327468&view=markup&pathrev=1327468 > > > > > > > > > > Oleg > > > > > > > > > --------------------------------------------------------------------- > > > 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] > >
