@@ -38,6 +38,21 @@ public OAuthRequestAsync(Verb verb, String url, OAuthService service) {
3838 super (verb , url , service );
3939 }
4040
41+ private Map <String , Collection <String >> mapHeaders () {
42+ final Map <String , Collection <String >> mapped = new HashMap <>();
43+
44+ for (Map .Entry <String , String > header : getHeaders ().entrySet ()) {
45+ final String headerName = header .getKey ();
46+ Collection <String > headerValues = mapped .get (headerName );
47+ if (headerValues == null ) {
48+ headerValues = new ArrayList <>();
49+ mapped .put (headerName , headerValues );
50+ }
51+ headerValues .add (header .getValue ());
52+ }
53+ return mapped ;
54+ }
55+
4156 public <T > Future <T > sendAsync (OAuthAsyncRequestCallback <T > callback , ResponseConverter <T > converter ) {
4257 return sendAsync (callback , converter , null );
4358 }
@@ -54,48 +69,26 @@ public <T> Future<T> sendAsync(OAuthAsyncRequestCallback<T> callback, ResponseCo
5469 }
5570 final String completeUrl = getCompleteUrl ();
5671 final AsyncHttpClient .BoundRequestBuilder boundRequestBuilder ;
72+ final AsyncHttpClient asyncHttpClient = service .getAsyncHttpClient ();
5773 switch (getVerb ()) {
5874 case GET :
59- boundRequestBuilder = service .getAsyncHttpClient ()
60- .prepareGet (completeUrl )
61- .setHeaders (mapHeaders ());
62-
75+ boundRequestBuilder = asyncHttpClient .prepareGet (completeUrl );
6376 break ;
6477 case POST :
65- boundRequestBuilder = service .getAsyncHttpClient ().preparePost (completeUrl )
66- .setBody (getBodyContents ())
67- .setHeaders (mapHeaders ());
68-
78+ boundRequestBuilder = asyncHttpClient .preparePost (completeUrl ).setBody (getBodyContents ());
6979 break ;
7080 default :
7181 throw new IllegalArgumentException ("message build error: unknown verb type" );
7282 }
83+
84+ boundRequestBuilder .setHeaders (mapHeaders ());
85+
7386 if (proxyServer != null ) {
7487 boundRequestBuilder .setProxyServer (proxyServer );
7588 }
7689 return boundRequestBuilder .execute (new OAuthAsyncCompletionHandler <>(callback , converter ));
7790 }
7891
79- public Future <Response > sendAsync (OAuthAsyncRequestCallback <Response > callback ) {
80- return sendAsync (callback , RESPONSE_CONVERTER , null );
81- }
82-
83- public Future <Response > sendAsync (OAuthAsyncRequestCallback <Response > callback , ProxyServer proxyServer ) {
84- return sendAsync (callback , RESPONSE_CONVERTER , proxyServer );
85- }
86-
87- private Map <String , Collection <String >> mapHeaders () {
88- final Map <String , String > headers = getHeaders ();
89- final Map <String , Collection <String >> mapped = new HashMap <>();
90-
91- for (Map .Entry <String , String > entry : headers .entrySet ()) {
92- final ArrayList <String > list = new ArrayList <>();
93- list .add (entry .getValue ());
94- mapped .put (entry .getKey (), list );
95- }
96- return mapped ;
97- }
98-
9992 private static class OAuthAsyncCompletionHandler <T > extends AsyncCompletionHandler <T > {
10093
10194 private final OAuthAsyncRequestCallback <T > callback ;
@@ -123,6 +116,14 @@ public void onThrowable(Throwable t) {
123116 }
124117 };
125118
119+ public Future <Response > sendAsync (OAuthAsyncRequestCallback <Response > callback ) {
120+ return sendAsync (callback , RESPONSE_CONVERTER , null );
121+ }
122+
123+ public Future <Response > sendAsync (OAuthAsyncRequestCallback <Response > callback , ProxyServer proxyServer ) {
124+ return sendAsync (callback , RESPONSE_CONVERTER , proxyServer );
125+ }
126+
126127 public interface ResponseConverter <T > {
127128
128129 T convert (com .ning .http .client .Response response ) throws IOException ;
0 commit comments