Click here to Skip to main content
11,416,787 members (60,410 online)
Click here to Skip to main content

How to Purge Cache in Akamai Proxy Server using C#

, 24 Apr 2011 CPOL
Rate this:
Please Sign up or sign in to vote.
How to use C# to programmatically purge cache of the Akamai proxy server

Purge Request to Akamai

Purge request to Akamai server is a process to send instruction to the proxy server to free-up some item in the cache so that the new request will get a new copy of data. This is an HTTP command used by Akamai proxy server. Purge cache in Akamai proxy server is very easy, all you need to know is what programming language you use and add the appropriate Web Service.

Akamai Web Service

Language URL
Pearl https://ccuapi.akamai.com/ccuapi.wsdl
Microsoft Visual Basic 6, SOAP 1.0 https://ccuapi.akamai.com/ccuapi-list.wsdl
Microsoft Visual Basic 6, SOAP 3.0 https://ccuapi.akamai.com/ccuapi-list-2001.wsdl
Microsoft Visual Basic .NET https://ccuapi.akamai.com/ccuapi-dotnet.wsdl
Java https://ccuapi.akamai.com/ccuapi-axis.wsdl

Steps to Purge Cache in Akamai Proxy Server in C#

1. Open Microsoft Visual Studio ( I am using 2008)

I am going to use C#, so I need to run Visual Studio to create a project and write code to purge cache items:

2. Add Akamai Web Service

Akamai is exposing one of their web services that has functionality to trigger purge cache request in Akamai proxy server. All we need to do is to add this service as reference in our .NET application.

Right click on the C# project and then click on the Add Service Reference item, then the Add Service Reference popup window will appear.

In the Address input box, please input https://ccuapi.akamai.com/ccuapi-dotnet.wsdl and then click on the Go button to load the web service. At the bottom, you'll see Namespace input box you can modify the namespace a sper your convenience, let's say AkamaiPurgeCache. You will be using this namespace upon accessing the methods and classes inside this service.

3. Write code to initiate purge request to Akamai proxy server

Please modify the needed information, especially the credentials and the item you want to purge.

public void PurgeCache() 
{ 
    try 
    { 
        string username = "username"; 	//use the username to access 
					//the control.akamai.com 
        string password = "password"; 	//use the password to access the control.
					//akamai.com 
        string email = "mysample@email.com,
	mysample@anotheremail.com"; //for multiple emails use comma as separator 
        string[] fileToPurge = new string[]
	{"nstore.abc.com/1234/folder/myfile.html"}; //this is the item in 
					//akamai proxy that you want to purge
        string action = "action=remove"; 	//other value is action=invalidate 
        string domain = "domain=production";//other value is domain=staging 
        
        //type: type=cpcode or type=arl >> arl: akamai resource locator. 
        //url: uniform resource locator. 
        //To use the type cpcode option, your administrator must enable 
        //purge-by-cpcode access for your username 
        //through Akamai EdgeControl. 
        string purgeType = "type=arl"; //other value is type=cpcode 
        
        string[] options = new string[]{action, domain, email, purgeType}; 
        AkamaiPurgeCache.PurgeApi purgeAPI = new AkamaiPurgeCache.PurgeApiClient(); 
        AkamaiPurgeCache.PurgeResult purgeResult = purgeAPI.purgeRequest
		(username, password, string.Empty, options, fileToPurge); 
        
        if (purgeResult.resultCode >= 300) 
        { 
            System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
            sb.AppendFormat("Error Code: {0}",purgeResult.resultCode); 
            sb.AppendFormat("Error Message: {0}", purgeResult.resultMsg); 
            sb.AppendFormat("Session ID: {0}", purgeResult.sessionID); 
            sb.AppendFormat("URI Index: {0}", purgeResult.uriIndex); 
            throw new Exception(sb.ToString()); 
        } 
    }
    catch(Exception e) { //exception code here.. } 
}

History

  • 23rd April, 2011: Initial version

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Jephunneh Malazarte
Software Developer (Senior)
Philippines Philippines
Watch Anime...

Comments and Discussions

 
QuestionGeting this error | System.ServiceModel.EndpointNotFoundException Pin
Sweety .12-Mar-14 23:41
memberSweety .12-Mar-14 23:41 
QuestionIn option of "email", you should add a title. Pin
jealter15-Jan-14 21:09
memberjealter15-Jan-14 21:09 
Questionthrow new Exception(sb.ToString()) actually throws exception Pin
mykey20053-Jul-13 4:47
membermykey20053-Jul-13 4:47 
AnswerRe: throw new Exception(sb.ToString()) actually throws exception Pin
mykey20053-Jul-13 6:26
membermykey20053-Jul-13 6:26 
GeneralRe: throw new Exception(sb.ToString()) actually throws exception Pin
Jephunneh Malazarte24-Jul-13 0:37
memberJephunneh Malazarte24-Jul-13 0:37 
QuestionHow to clear cache at folder level Pin
User@Rupesh6-May-13 9:03
memberUser@Rupesh6-May-13 9:03 
QuestionFor website Akamai cache key is different Pin
anushripatil6-Dec-11 0:45
memberanushripatil6-Dec-11 0:45 
AnswerRe: For website Akamai cache key is different Pin
Jephunneh Malazarte6-Dec-11 3:27
memberJephunneh Malazarte6-Dec-11 3:27 
Hello.. hmmm.. i never tried clearing the cache of the website but there are 2 things i have in mind.
1. Could be that the account u r using to purge doesn't have sufficient access rights "it happen to me before, i just send an email to the akamai support to validate my credentials and do necessary changes"
2. Could be that there's is a different approach to purge the website? "i'm not sure though sorry"

sorry i don't have concrete answer to your question. but if you found the solution, i am very interested.. thanks..
Nothing!!!

GeneralRe: For website Akamai cache key is different Pin
anushripatil6-Dec-11 18:10
memberanushripatil6-Dec-11 18:10 
Questionthank you so much for this code! Pin
Member 820973715-Oct-11 23:30
memberMember 820973715-Oct-11 23:30 
AnswerRe: thank you so much for this code! Pin
Jephunneh Malazarte16-Oct-11 5:12
memberJephunneh Malazarte16-Oct-11 5:12 
QuestionAdd On Tips when purging Pin
Jephunneh Malazarte6-Sep-11 1:03
memberJephunneh Malazarte6-Sep-11 1:03 
GeneralLimitation of Akamai Purge Request using CCUAPI Pin
Jephunneh Malazarte2-Jun-11 1:04
memberJephunneh Malazarte2-Jun-11 1:04 
General"Invalid Option" response Pin
Chayim19-May-11 10:10
memberChayim19-May-11 10:10 
GeneralRe: "Invalid Option" response Pin
Jephunneh Malazarte2-Jun-11 0:59
memberJephunneh Malazarte2-Jun-11 0:59 
GeneralRe: "Invalid Option" response Pin
hamacatak18-Oct-12 0:40
memberhamacatak18-Oct-12 0:40 
GeneralRe: "Invalid Option" response Pin
Jephunneh Malazarte2-Jun-11 1:15
memberJephunneh Malazarte2-Jun-11 1:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150427.4 | Last Updated 24 Apr 2011
Article Copyright 2011 by Jephunneh Malazarte
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid