import java.net.*;
import java.io.*;
import javax.xml.parsers.*; 
import org.w3c.dom.*; 
import org.xml.sax.*; 

public class AddCampaign
{
	public static void main(String[] args) throws Exception
	{    
		URL url = new URL("http://www.agendize.com/api/1.0/data");
        
		String myUsername = "john.smith@acme.com";
		String myPassword = "password";
        
		String userPassword = myUsername + ":" + myPassword;
		String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());

		URLConnection urlConnection = url.openConnection();
		urlConnection.setRequestProperty("Authorization", "Basic " + encoding);

		String xml = "< ?xml version=\"1.0\" encoding=\"UTF-8\"? ><agendize><account>" +
				"<campaign><name>My Campaign</name><color>#FF00FB</color>" + 
				"<description>My Campaign Description</description>" +	                 
				"</campaign></account></agendize>";
		
		String params = URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode("ef85ab4589e5623844", "UTF-8");
		params += "&" + URLEncoder.encode("xml", "UTF-8") + "=" + URLEncoder.encode(xml, "UTF-8");
		
		OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream());
		writer.write(params);
		writer.flush();
		
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();			
		DocumentBuilder build = factory.newDocumentBuilder();
						
		Document doc = build.parse(urlConnection.getInputStream());
			
		NodeList nodeList = doc.getElementsByTagName("result");
			
		if (nodeList.getLength() > 0)
		{
			int code = Integer.parseInt(nodeList.item(0).getFirstChild().getNodeValue());
				
			System.out.println("return code: " + code);
		}
			
		writer.close();
	}
}