Sto creando un nuovo HttpClient, passando ThreadSafeClientConnManager e HttpParams nel suo costruttore, ma viene sempre generato un errore di richiesta errato. Per capire cosa è andato storto, l'ho eseguito nel debug ma invano. fornirmi qualche soluzione Qui è il mio blocco di codiceImposta oggetto HttpParams in HttpClient 4.0
sc.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
sc.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
HttpParams basicParams = new BasicHttpParams();
ThreadSafeClientConnManager connmgr = new ThreadSafeClientConnManager(basicParams, sc);
ConnManagerParams.setMaxConnectionsPerRoute(
basicParams,
// if we have more than 5 concurrent leads, good problem to have
new ConnPerRoute() {
public int getMaxForRoute(HttpRoute httproute) {
return 5;
}
});
g_client = new DefaultHttpClient(connmgr, basicParams);
// It's a lead, be forgiving with timeout
g_client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
g_client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);
ConnManagerParams.setTimeout(basicParams, 2000);
quando chiamo g_client.execute(postMethod);
nel mio codice è mostra 400 codice di stato significa che qualcosa non va con la mia richiesta. Se mi passa nulla nel mio DefaultHttpClient costruttore
g_client = new DefaultHttpClient(connmgr, null);
Il client è in esecuzione con successo, ma non è modo giusto, come ho bisogno di param base impostato maxconnectionperroute
. Ho incollato qui il codice dubbio. Per favore date un'occhiata e aiutatemi. Sono bloccato qui.
Sto usando la versione HttpClient 4.0.
C'è un motivo particolare che si sta utilizzando una versione obsoleta di tale Apache HttpClient? – oleg
Una sola ragione perché sto utilizzando il server WebSphere (non conosco la versione esatta) che supporta solo questa versione di httpclient. –