@@ -46,20 +46,20 @@ public class BaseHttpClient {
4646 private final int DEFAULT_SOCKET_TIMEOUT = (30 * 1000 ); // milliseconds
4747
4848
49- protected ResponseResult sendGet (String url , String params , String authCode ) {
49+ protected ResponseWrapper sendGet (String url , String params , String authCode ) {
5050 return sendRequest (url , params , "GET" , authCode );
5151 }
5252
53- protected ResponseResult sendPost (String url , String content , String authCode ) {
53+ protected ResponseWrapper sendPost (String url , String content , String authCode ) {
5454 return sendRequest (url , content , "POST" , authCode );
5555 }
5656
57- protected ResponseResult sendRequest (String url , String content , String method , String authCode ) {
57+ protected ResponseWrapper sendRequest (String url , String content , String method , String authCode ) {
5858 LOG .debug ("Send request to - " + url + ", with content - " + content );
5959 HttpURLConnection conn = null ;
6060 OutputStream out = null ;
6161 StringBuffer sb = new StringBuffer ();
62- ResponseResult result = new ResponseResult ();
62+ ResponseWrapper wrapper = new ResponseWrapper ();
6363
6464 try {
6565 initSSL ();
@@ -89,69 +89,75 @@ protected ResponseResult sendRequest(String url, String content, String method,
8989 conn .setDoOutput (false );
9090 }
9191
92- InputStream in = conn .getInputStream ();
92+ int status = conn .getResponseCode ();
93+ InputStream in = null ;
94+ if (status == 200 ) {
95+ in = conn .getInputStream ();
96+ } else {
97+ in = conn .getErrorStream ();
98+ }
9399 InputStreamReader reader = new InputStreamReader (in , CHARSET );
94100 char [] buff = new char [1024 ];
95101 int len ;
96102 while ((len = reader .read (buff )) > 0 ) {
97103 sb .append (buff , 0 , len );
98104 }
99105
100- int status = conn .getResponseCode ();
101106 String responseContent = sb .toString ();
102- result .responseCode = status ;
103- result .responseContent = responseContent ;
107+ wrapper .responseCode = status ;
108+ wrapper .responseContent = responseContent ;
104109
105110 String quota = conn .getHeaderField (RATE_LIMIT_QUOTA );
106111 String remaining = conn .getHeaderField (RATE_LIMIT_Remaining );
107112 String reset = conn .getHeaderField (RATE_LIMIT_Reset );
108- result .setRateLimit (quota , remaining , reset );
113+ wrapper .setRateLimit (quota , remaining , reset );
109114
110115 if (status == 200 ) {
111116 LOG .debug ("Succeed to get response - 200 OK" );
112117
113118 } else {
114- LOG .warn ("Got error response - responseCode:" + status + ", responseContent:" + responseContent );
119+ LOG .info ("Got error response - responseCode:" + status + ", responseContent:" + responseContent );
115120
116121 switch (status ) {
117122 case 400 :
118- LOG .warn ("Your request params is invalid. Please check them according to docs ." );
119- result .setErrorObject ();
123+ LOG .error ("Your request params is invalid. Please check them according to error message ." );
124+ wrapper .setErrorObject ();
120125 break ;
121126 case 403 :
122- LOG .warn ("Request is forbidden! Maybe your appkey is listed in blacklist?" );
123- result .setErrorObject ();
127+ LOG .error ("Request is forbidden! Maybe your appkey is listed in blacklist?" );
128+ wrapper .setErrorObject ();
124129 break ;
125130 case 401 :
126- LOG .warn ("Authentication failed! Please check authentication params according to docs." );
127- result .setErrorObject ();
131+ LOG .error ("Authentication failed! Please check authentication params according to docs." );
132+ wrapper .setErrorObject ();
128133 break ;
129134 case 429 :
130- LOG .warn ("Too many requests! Please review your appkey's request quota." );
131- result .setErrorObject ();
135+ LOG .error ("Too many requests! Please review your appkey's request quota." );
136+ wrapper .setErrorObject ();
132137 break ;
133138 case 500 :
134- LOG .warn ("Seems encountered server error. Please retry later." );
139+ LOG .error ("Seems encountered server error. Please retry later." );
135140 break ;
136141 default :
142+ LOG .error ("Unexpected response." );
137143 }
138- return result ;
144+ return wrapper ;
139145 }
140146
141147 } catch (SocketTimeoutException e ) {
142- result .exceptionString = e .getMessage ();
148+ wrapper .exceptionString = e .getMessage ();
143149 LOG .error ("Request timeout. Retry later." , e );
144150 } catch (ConnectException e ) {
145- result .exceptionString = e .getMessage ();
146- LOG .error ("Connnect error. " , e );
151+ wrapper .exceptionString = e .getMessage ();
152+ LOG .error ("Connnect error. Retry later. " , e );
147153 } catch (UnknownHostException e ) {
148- result .exceptionString = e .getMessage ();
154+ wrapper .exceptionString = e .getMessage ();
149155 LOG .error ("Unknown host. Please check the DNS configuration of your server." , e );
150156 } catch (IOException e ) {
151- result .exceptionString = e .getMessage ();
152- LOG .error ("IO error. " , e );
157+ wrapper .exceptionString = e .getMessage ();
158+ LOG .error ("IO error. Retry later. " , e );
153159 } catch (Exception e ) {
154- result .exceptionString = e .getMessage ();
160+ wrapper .exceptionString = e .getMessage ();
155161 LOG .error ("Unknown exception. " , e );
156162 } finally {
157163 if (null != out ) {
@@ -166,7 +172,7 @@ protected ResponseResult sendRequest(String url, String content, String method,
166172 }
167173 }
168174
169- return result ;
175+ return wrapper ;
170176 }
171177
172178 protected void initSSL () {
0 commit comments