Skip to content

Commit 1ed7694

Browse files
mnoman09thomaszurkan-optimizely
authored andcommitted
Fix(Impression event): Resolved method post issue (#243)
* Added post method * indentation corrected.
1 parent ab053a8 commit 1ed7694

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed

core-httpclient-impl/src/main/java/com/optimizely/ab/event/AsyncEventHandler.java

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,12 @@ private class EventDispatcher implements Runnable {
177177
@Override
178178
public void run() {
179179
try {
180-
HttpGet request = generateRequest(logEvent);
180+
HttpRequestBase request;
181+
if (logEvent.getRequestMethod() == LogEvent.RequestMethod.GET) {
182+
request = generateGetRequest(logEvent);
183+
} else {
184+
request = generatePostRequest(logEvent);
185+
}
181186
httpClient.execute(request, EVENT_RESPONSE_HANDLER);
182187
} catch (IOException e) {
183188
logger.error("event dispatch failed", e);
@@ -189,7 +194,7 @@ public void run() {
189194
/**
190195
* Helper method that generates the event request for the given {@link LogEvent}.
191196
*/
192-
private HttpGet generateRequest(LogEvent event) throws URISyntaxException {
197+
private HttpGet generateGetRequest(LogEvent event) throws URISyntaxException {
193198

194199
URIBuilder builder = new URIBuilder(event.getEndpointUrl());
195200
for (Map.Entry<String, String> param : event.getRequestParams().entrySet()) {
@@ -198,23 +203,30 @@ private HttpGet generateRequest(LogEvent event) throws URISyntaxException {
198203

199204
return new HttpGet(builder.build());
200205
}
201-
}
202-
203-
/**
204-
* Handler for the event request that returns nothing (i.e., Void)
205-
*/
206-
private static final class ProjectConfigResponseHandler implements ResponseHandler<Void> {
207206

208-
@Override
209-
public @CheckForNull Void handleResponse(HttpResponse response) throws IOException {
210-
int status = response.getStatusLine().getStatusCode();
211-
if (status >= 200 && status < 300) {
212-
// read the response, so we can close the connection
213-
response.getEntity();
214-
return null;
215-
} else {
216-
throw new ClientProtocolException("unexpected response from event endpoint, status: " + status);
217-
}
207+
private HttpPost generatePostRequest(LogEvent event) throws UnsupportedEncodingException {
208+
HttpPost post = new HttpPost(event.getEndpointUrl());
209+
post.setEntity(new StringEntity(event.getBody()));
210+
post.addHeader("Content-Type", "application/json");
211+
return post;
218212
}
219213
}
220-
}
214+
215+
/**
216+
* Handler for the event request that returns nothing (i.e., Void)
217+
*/
218+
private static final class ProjectConfigResponseHandler implements ResponseHandler<Void> {
219+
220+
@Override
221+
public @CheckForNull Void handleResponse(HttpResponse response) throws IOException {
222+
int status = response.getStatusLine().getStatusCode();
223+
if (status >= 200 && status < 300) {
224+
// read the response, so we can close the connection
225+
response.getEntity();
226+
return null;
227+
} else {
228+
throw new ClientProtocolException("unexpected response from event endpoint, status: " + status);
229+
}
230+
}
231+
}
232+
}

0 commit comments

Comments
 (0)