//------------------------------------------------------------------------------
// Copyright (c) 2012 Microsoft Corporation. All rights reserved.
//
// Description: See the class level JavaDoc comments.
//------------------------------------------------------------------------------
package com.microsoft.live;
import org.apache.http.HttpEntity;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.json.JSONObject;
/**
* PostRequest is a subclass of a BodyEnclosingApiRequest and performs a Post request.
*/
class PostRequest extends EntityEnclosingApiRequest<JSONObject> {
public static final String METHOD = HttpPost.METHOD_NAME;
/**
* Constructs a new PostRequest and initializes its member variables.
*
* @param session with the access_token
* @param client to make Http requests on
* @param path of the request
* @param entity body of the request
*/
public PostRequest(LiveConnectSession session,
HttpClient client,
String path,
HttpEntity entity) {
super(session, client, JsonResponseHandler.INSTANCE, path, entity);
}
/** @return the string "POST" */
@Override
public String getMethod() {
return METHOD;
}
/**
* Factory method override that constructs a HttpPost and adds a body to it.
*
* @return a HttpPost with the properly body added to it.
*/
@Override
protected HttpUriRequest createHttpRequest() throws LiveOperationException {
final HttpPost request = new HttpPost(this.requestUri.toString());
request.setEntity(this.entity);
return request;
}
}