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

(New page: {| 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-zi...)
 
No edit summary
(9 intermediate revisions by 5 users not shown)
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);"
{{BC|Community Sandbox}}
__FORCETOC__
<div class="col-md-12 ibox-content">
=ZCS 6.0: Zimlet Developer Guide:Examples:HTTP GET and POST=
{{KB|{{Unsupported}}|{{ZCS 7.0}}|{{ZCS 6.0}}|}}
{{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]]
Line 15: Line 20:
|[[ZCS 6.0:Zimlet Developers Guide:Example Zimlets|Example Zimlets]]
|[[ZCS 6.0:Zimlet Developers Guide:Example Zimlets|Example Zimlets]]
|}
|}
== Description ==
== Description ==


This zimlet shows how to create and use internationalizable resource properties. In the Zimlet Definition File, the zimlet accesses resource properties using the <code>${msg}</code> syntax.
This zimlet shows using the <code>AjxRps.invoke()</code> 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 ==
== Definition File ==
Line 32: Line 35:
         <menuItem label="HTTP GET" id="CALL_VIA_HTTP_GET" />
         <menuItem label="HTTP GET" id="CALL_VIA_HTTP_GET" />
         <menuItem label="HTTP POST" id="CALL_VIA_HTTP_POST" />
         <menuItem label="HTTP POST" id="CALL_VIA_HTTP_POST" />
        <menuItem label="HTTP GET (external)" id="CALL_VIA_HTTP_EXTERNAL_GET" />
       </contextMenu>
       </contextMenu>
   </zimletPanelItem>
   </zimletPanelItem>
Line 72: Line 76:
}
}
};
/**
* 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);
};
};
</pre>
</pre>
Line 84: Line 137:




{{Article Footer|Zimbra Collaboration Suite 6.0|02/22/2010}}
{{Article Footer|Zimbra Collaboration Server 7.0|02/22/2010}}


[[Category:Developers]]
[[Category:Developers]]
[[Category:Zimlets]]
[[Category:Zimlets]]
[[Category:ZCS 7.0]]
[[Category:ZCS 6.0]]
[[Category:ZCS 6.0]]

Revision as of 12:41, 13 July 2015

ZCS 6.0: Zimlet Developer Guide:Examples:HTTP GET and POST

   KB 3407        Last updated on 2015-07-13  




0.00
(0 votes)
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

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-07-13



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