MyPW Developer Resources

MyPW Example: C


This example is based on Eric Kidd's XML-RPC-C library.

Sample Code
#define MYPW_URL "https://services.mypw.com/RPC2"

[...]

	xmlrpc_value *response;
	xmlrpc_env env;
	xmlrpc_int returnvalue; 
	char *errmsg;

	/* Obtain TokenID, SiteID, AuthKey, and TokenValue somewhere *
	 * around here					    */

	/* Setup some stuff for SSL */
	struct xmlrpc_curl_xportparms {
		const char * network_interface;
		xmlrpc_bool no_ssl_verifypeer;
		xmlrpc_bool no_ssl_verifyhost;
		const char * user_agent;
	};

	struct xmlrpc_clientparms clientParms;
	struct xmlrpc_curl_xportparms curlParms;

	curlParms.no_ssl_verifypeer = 1;
	curlParms.no_ssl_verifyhost = 1;
	curlParms.user_agent = "mypw_app/1.0";

	clientParms.transport = "curl";
	clientParms.transportparmsP = &curlParms;
	clientParms.transportparm_size = XMLRPC_CXPSIZE(user_agent);
	/* SSL */

	xmlrpc_env_init(&env);
	xmlrpc_client_init2(&env, XMLRPC_CLIENT_NO_FLAGS, NAME, VERSION, &clientParms, XMLRPC_CPSIZE(transportparm_size));

	/* Send that data into xmlrpc_client_call() */
	response = xmlrpc_client_call(&env, MYPW_URL,
				      "auth.auth", "({s:s,s:s,s:s,s:s})",
				      "siteid", userinfo.siteid,
				      "authkey", userinfo.authkey,
				      "tokenid", userinfo.tokenid,
				      "tokenvalue", tokenValue);

	/* Get the response back and read the components */
	xmlrpc_decompose_value(&env, 
			       response, 
			       "{s:i,s:s}",
			       "code", &returnvalue,
			       "message", &errmsg);

	if (returnvalue == 0)
		printf ("mypw_xmlrpc: Success! (%d)\n", returnvalue);

	else
		printf ("mypw_xmlrpc: Failed: %d -- %s.\n", returnvalue, errmsg);


 
Google Groups Beta
Subscribe to MyPW Developers
Email:
Visit this group
Have you created a bit of code that might be of interest to other MyPW developers? Post it on MyPW google groups.