ZCS 6.0:Zimlet Developers Guide:Examples:HTTP GET and POST: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
{| cellspacing="0" cellpadding="5" style="border: 1px solid rgb(153, 153, 170); margin: 0pt 0.5em 0.5em 0pt; float: none; background-color: rgb(249, 249, 255);"
{{WIP}}{| cellspacing="0" cellpadding="5" style="border: 1px solid rgb(153, 153, 170); margin: 0pt 0.5em 0.5em 0pt; float: none; background-color: rgb(249, 249, 255);"
|[[Image:zdg-6-menu-icon-zimbra.jpg|20px]]
|[[Image:zdg-6-menu-icon-zimbra.jpg|20px]]
|[[ZCS 6.0:Zimlet Developers Guide:Introduction|Introduction]]
|[[ZCS 6.0:Zimlet Developers Guide:Introduction|Introduction]]

Revision as of 19:24, 25 March 2015

Zdg-6-menu-icon-zimbra.jpg Introduction Zdg-6-menu-icon-green-flag.png Getting Started Zdg-6-menu-icon-terminal.png Dev Environment Setup Zdg-6-menu-icon-gear.png Developing Zimlets Zdg-6-menu-icon-advanced.jpg Advanced Concepts Zdg-6-menu-icon-library.jpg API Specifications Zdg-6-menu-icon-checkbox.jpg Example Zimlets


Developer Article

Article Information

This article applies to the following ZCS versions.

ZCS 7.0 Article ZCS 7.0 ZCS 6.0 Article ZCS 6.0

Description

This zimlet shows using the AjxRps.invoke() method to call a URL from your zimlet via GET and POST. Also shows how to call an external service (via the Proxy Servlet).

Definition File

<zimlet name="com_zimbra_example_httpgetpost" version="1.0" description="An example zimlet using HTTP GET and POST.">
    <include>com_zimbra_example_httpgetpost.js</include>
    <handlerObject>com_zimbra_example_httpgetpost_HandlerObject</handlerObject>
    <zimletPanelItem label="Zimlet Example (HTTP GET and POST)" icon="zimbraIcon">
      <toolTipText>Right click to display the menu</toolTipText>
      <contextMenu>
        <menuItem label="HTTP GET" id="CALL_VIA_HTTP_GET" />
        <menuItem label="HTTP POST" id="CALL_VIA_HTTP_POST" />
        <menuItem label="HTTP GET (external)" id="CALL_VIA_HTTP_EXTERNAL_GET" />
      </contextMenu>
   </zimletPanelItem>
</zimlet>

Handler Object

/**
 * Displays the zimlet jsp page.
 * 
 */
com_zimbra_example_httpgetpost_HandlerObject.prototype._executeHttpGet = 
function() {
	
	var jspUrl = this.getResource("jspfile.jsp");

	var response = AjxRpc.invoke(null, jspUrl, null, null, true);

	if (response.success == true) {
		appCtxt.getAppController().setStatusMsg(response.text);		
	}
	
};

/**
 * Displays the zimlet jsp page.
 * 
 */
com_zimbra_example_httpgetpost_HandlerObject.prototype._executeHttpPost = 
function() {
	
	var jspUrl = this.getResource("jspfile.jsp");

	var response = AjxRpc.invoke(null, jspUrl, null, null, false);

	if (response.success == true) {
		appCtxt.getAppController().setStatusMsg(response.text);		
	}
	
};

/**
 * Performs a "GET" against an external server using the Proxy Servlet.
 * 
 */
com_zimbra_example_httpgetpost_HandlerObject.prototype._executeExternalHttpGet = 
function() {
	
	var extServer = "http://search.twitter.com/search.json";

	// create and encode the query params of the external server url
	var extServerParams = ["q", "=", AjxStringUtil.urlComponentEncode("london bridge")].join("");
	
	 // add parameters to the url 
         //ATTENTION: you'll find "params" instead of "extServerParams" in the source code you're
         //downloading, so you'll have to change it manually...if not done already
	var extServerUrl = [extServer, "?", extServerParams].join("");

	// url encode the external server url
	// since it will part of the query params for the proxy servet
	var encodedExtServerUrl = AjxStringUtil.urlComponentEncode(extServerUrl);
	
	// create proxy servlet URL
	var proxyServletUrl = [ZmZimletBase.PROXY, encodedExtServerUrl].join(""); 

	// submit the URL and asynchronous response (using callback)
	AjxRpc.invoke(null, proxyServletUrl, null, new AjxCallback(this, this._httpExternalGetCallback), false);
	
};

/**
 * Handles the callback from the external http GET AjxRpc.invoke().
 * 
 * 
 * @see		com_zimbra_example_httpgetpost_HandlerObject._executeExternalHttpGet
 */
com_zimbra_example_httpgetpost_HandlerObject.prototype._httpExternalGetCallback =
function(response) {

	if (response.success == false) {
		// display the error response
		appCtxt.getAppController().setStatusMsg("Error: " + response.text, ZmStatusView.LEVEL_WARNING);
		return;
	}

	// display the response
	appCtxt.getAppController().setStatusMsg(response.text);		

};

Download

Zimlet Package com_zimbra_example_httpgetpost.zip


Verified Against: Zimbra Collaboration Server 7.0 Date Created: 02/22/2010
Article ID: https://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Examples:HTTP_GET_and_POST Date Modified: 2015-03-25



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search