You Are Here:

Community: Wiki

This page was last modified 07:32, 16 June 2008.

HTTP service V2

From Forum Nokia Wiki

Image:FNWID.gif

This is version 2 of HTTP service. To use it in non-generic calls you must specify the attribute version="2" in widget.xml:/widget/services/service or in generic calls directly in the call (see call documentation.)

Contents

The service

With the HTTP service the script can execute HTTP GET and HTTP POST methods. If the MIME type of the response is human readable text ("text/..."), the response is a string, otherwise it is binary. The output of the HTTP service can be processed with a filter. (See Advanced filters.)

The HTTP service can have the following service parameters that are configured in the XML configuration:

Service parameter Function
auth When using TOKEN authentication, the service id of the tokenauth type service must be set here. (See Token Authentication for an example.)
url When using the exec action the URL must be specified here.
method When using the exec action the METHOD can be specified here. If it is not specified, the default method will be GET.


HTTP service has three actions that are called from the script code:

Service action Function
exec Exec executes a pre-specified HTTP GET or POST to an URL given in the widget.xml. The method can be specified there also.
get Get executes a HTTP GET to the URL specified.
post Post executes a HTTP POST to the URL specified.

With get, post, and exec actions, additional request parameters can be added. In get only the string type parameters are appended to the querystring, and in post depending on the nature of the parameters they are either sent as:

Content-Type: application/x-www-form-urlencoded; charset=utf-8

when all parameter values are strings

OR

Content-Type: multipart/form-data

when there are also other types of parameter values than strings. The values of other types must be accompanied with the MIME type of the data.

exec action

The exec action maps to either HTTP GET or HTTP POST depending on its configuration. The exec action differs from get and post actions so that the URL cannot be given in the request (the call coming from the WidSets client). It has to be pre-specified in the widget.xml. The only input exec takes is the request parameters.

With the exec action it is possible to hide the URL to the destination. The URL can contain a token or some credentials to identify the call coming from WidSets. If the parameter in widget.xml is specified as visible=false, editable=false and sendmobile=false it will not be visible or delivered to the mobile client. A certain business-to-business API could be implemented this way.

get and post actions

Both get and post actions take the same kind of input. Get maps to HTTP GET and post maps to HTTP POST. The only required parameter in both actions is url. Other optional parameters are:

  • enccharset - The charset used for URLEncoding.
  • returnheaders - The result will contain the HTTP headers the remote server sent.
  • returnstatus - The result will contain the HTTP status code the remote server responed with.
  • headers - Custom headers can be included in this list.

Service actions

The following are the specifications for the available service actions.

#!format=registry; charset=ISO-8859-1


namespace "2" is ContentHandler
{

  ActualContent = (choice (string textContent)
                          (bytes dataContent)
                          (any filteredData)
                          (null noData))

  Headers = (list (repeat (bind (string name) (string value))))

  Content = (list (bag (required (bind (const content) (use ActualContent)))
                       (optional (bind (const status) (int statusCode)))
                       (optional (bind (const headers) (use Headers)))))


  FetchInput = (list (bag (bind (const url)
                                (string urlToFetch))
                          (optional (bind (const params)
                                          (list (repeat (use RequestParameter)))))
                          (optional (bind (const enccharset)
                                          (string urlEncCharset)))
                          (optional (bind (const returnheaders)
                                          (boolean returnHeaders)))
                          (optional (bind (const returnstatus)
                                          (boolean returnStatus)))
                          (optional (bind (const headers)
                                          (use Headers)))))


  RequestParameter = (bind (string paramName)
                           (choice (string paramValue)
                                   (int paramValue)
                                   (boolean paramValue)
                                   (list (string mimeType)
                                         (bytes data))))


  namespace exec is ContentAction
  {
    input = (list (repeat (use ../RequestParameter)))
    output = (use ../Content)
    generic = false
  }


  namespace get is ContentAction
  {
    input = (use ../FetchInput)
    output = (use ../Content)
    generic = true
  }


  namespace post is ContentAction
  {
    input = (use ../FetchInput)
    output = (use ../Content)
    generic = true
  }


}

Example widget.xml configuration for the exec action

<services>
  <service type="http" version="2" id="docall">
    <reference from="url" to="url" />
    <reference from="method" to="method" />
  </service>
</services>

<parameters>
  <parameter name="url" visible="false" editable="false" protected="true" sendmobile="false">
    <value>http://www.widsets.com/secret_test.php?username=antti</value>
  </parameter>
  
  <parameter name="method" value="get" /> 
</parameters>

Changes to the previous version

  • exec action added
  • In get and post actions there is the option to receive HTTP headers and the status code.

See also

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditFurlTechnocratiMagnoliaTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fHowE5ftoE5fknowE5ffaE78E5flineE5fstatusX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxHowE20toE20knowE20faE78E20lineE20statusE20E2dE20ForumE20NokiaE20WikiX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfnTypeZCommunityContentQ qdcZtypeQUqfnTypeZE52esourceQ qdcZtypeQUqfnTypeZWebpageQ qdcZtypeQUqfnTypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2fX qfnZtypeQUqfnTypeZCommunityContentQ qfnZtypeQUqfnTypeZE52esourceQ qfnZtypeQUqfnTypeZWebpageQ qfnZtypeQUqfnTypeZWikiContentQ qfnZupdatedQDx2008E2d10E2d02X qmarsZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfnTypeZCommunityContentQ qrdfZtypeQUqfnTypeZE52esourceQ qrdfZtypeQUqfnTypeZWebpageQ qrdfZtypeQUqfnTypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ