SKola
SKola

Reputation: 1

Issue in java code while purging cached url's in Akamai

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

Answers (0)

Related Questions