Reputation: 1
I'm using java code to purge the cached url's in Akamai. I'm getting 200 response but it's actually not purging the cached url's. where am I going wrong?
import java.io.IOException;
import java.net.URI;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.akamai.edgegrid.signer.ClientCredential;
import com.akamai.edgegrid.signer.exceptions.RequestSigningException;
import com.akamai.edgegrid.signer.googlehttpclient.GoogleHttpClientEdgeGridRequestSigner;
import com.google.api.client.googleapis.util.Utils;
import com.google.api.client.http.ByteArrayContent;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpHeaders;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
import com.google.gson.Gson;
public class MyServlet extends HttpServlet {
private static final String HTTPS = "https://";
private static final String HOST = "**********akamaiapis.net";
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
int status = 0;
ClientCredential credential = ClientCredential.builder()
.accessToken("akab*********************")
.clientToken("akab-*************************")
.clientSecret("**************")
.host(HOST).build();
String urlId = "https:://img.com"; //the url to purge
StringBuffer jsonBuff = new StringBuffer();
jsonBuff.append("{\"objects\":[");
jsonBuff.append(urlId);
jsonBuff.append("]}");
String json = jsonBuff.toString();
HttpTransport httpTransport = Utils.getDefaultTransport();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
HttpRequest httprequest = null;
try {
URI uri = new URI(HTTPS, HOST, "/ccu/v3/invalidate/url/production" + , null, null);
String requestBody = json;
httprequest = requestFactory.buildPostRequest(new GenericUrl(uri),
ByteArrayContent.fromString("application/json", requestBody));
HttpHeaders headers = httprequest.getHeaders();
headers.set("Host", HOST);
GoogleHttpClientEdgeGridRequestSigner requestSigner = new GoogleHttpClientEdgeGridRequestSigner(credential);
requestSigner.sign(httprequest);
HttpResponse httpresponse = httprequest.execute();
status = httpresponse.getStatusCode();
} catch (Exception e) {
e.printStackTrace();
}
if (status == 201) {
String nextJSP = "/PurgeSuccess.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
try {
dispatcher.forward(request, response);
} catch (IOException e) {
e.printStackTrace();
}
} else {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/ProductPurge.jsp");
try {
dispatcher.forward(request, response);
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
Upvotes: 0
Views: 111