Skip to content
Trulia Java RETS Client is library used to access data on RETS compliant servers.
Branch: master
Clone or download
vangulo-trulia Merge pull request #8 from depsypher/master
Make compatible with guava 16 and greater since closeQuietly() was remov...
Latest commit ef5e3bb Dec 6, 2014
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs/lib initial commit Dec 11, 2013
src Make compatible with guava 16 and greater since closeQuietly() was re… Dec 5, 2014
target removed unessessary override annotations Dec 19, 2013
.gitignore
LICENSE Format License Feb 20, 2014
README.md Update README.md Dec 20, 2013
pom.xml Update pom.xml Dec 19, 2013

README.md

trulia-java-rets-client

The Trulia Java RETS Client is a library used to access data on RETS compliant servers. This is a fork of the jrets master branch, which it self is a fork of the CART RETS client.

Simple example of a search:

public static void main(String[] args) throws MalformedURLException {

	//Create a RetsHttpClient (other constructors provide configuration i.e. timeout, gzip capability)
	RetsHttpClient httpClient = new CommonsHttpClient();
	RetsVersion retsVersion = RetsVersion.RETS_1_7_2;
	String loginUrl = "http://theurloftheretsserver.com";

	//Create a RetesSession with RetsHttpClient
	RetsSession session = new RetsSession(loginUrl, httpClient, retsVersion);    

	String username = "username";
	String password = "password";

	//Set method as GET or POST
	session.setMethod("POST");
	try {
		//Login
		session.login(username, password);
	} catch (RetsException e) {
		e.printStackTrace();
	}

	String sQuery = "(Member_num=.ANY.)";
	String sResource = "Property";
	String sClass = "Residential";

	//Create a SearchRequest
	SearchRequest request = new SearchRequest(sResource, sClass, sQuery);

	//Select only available fields
	String select ="field1,field2,field3,field4,field5";
	request.setSelect(select);

	//Set request to retrive count if desired
	request.setCountFirst();

	SearchResultImpl response;
	try {
		//Execute the search
		response= (SearchResultImpl) session.search(request);

		//Print out count and columns
		int count = response.getCount();
		System.out.println("COUNT: " + count);
		System.out.println("COLUMNS: " + StringUtils.join(response.getColumns(), "\t"));

		//Iterate over, print records
		for (int row = 0; row < response.getRowCount(); row++){
			System.out.println("ROW"+ row +": " + StringUtils.join(response.getRow(row), "\t"));
		}
	} catch (RetsException e) {
		e.printStackTrace();
	} 
	finally {
		if(session != null) { 
			try {
				session.logout(); 
			} 
			catch(RetsException e) {
				e.printStackTrace();
			}
		}
	}

Simple example making a GetObjectRequest:

public static void main(String[] args) throws MalformedURLException {

	//Create a RetsHttpClient (other constructors provide configuration i.e. timeout, gzip capability)
	RetsHttpClient httpClient = new CommonsHttpClient();
	RetsVersion retsVersion = RetsVersion.RETS_1_7_2;
	String loginUrl = "http://theurloftheretsserver.com";

	//Create a RetesSession with RetsHttpClient
	RetsSession	session = new RetsSession(loginUrl, httpClient, retsVersion);

	String username = "username";
	String password = "password";
	try {
		//Login
		session.login(username, password);
	} catch (RetsException e) {
		e.printStackTrace();
	}

	String sResource = "Property";
	String objType   = "Photo";
	String seqNum 	= "*"; // * denotes get all pictures associated with id (from Rets Spec)
	List<String> idsList = Arrays.asList("331988","152305","243374");
	try {
		//Create a GetObjectRequeset
		GetObjectRequest req = new GetObjectRequest(sResource, objType);

		//Add the list of ids to request on (ids can be determined from records)
		Iterator<String> idsIter = idsList.iterator();
		while(idsIter.hasNext()) {
			req.addObject(idsIter.next(), seqNum);
		}

		//Execute the retrieval of objects 
		Iterator<SingleObjectResponse> singleObjectResponseIter = session.getObject(req).iterator();

		//Iterate over each Object 
		while (singleObjectResponseIter.hasNext()) {
			SingleObjectResponse sor = (SingleObjectResponse)singleObjectResponseIter.next();

			//Retrieve in info and print
			String type =			sor.getType();
			String contentID = 		sor.getContentID();
			String objectID = 		sor.getObjectID();
			String description = 	sor.getDescription();
			String location = 		sor.getLocation();
			InputStream is = 		sor.getInputStream();

			System.out.print("type:" + type);
			System.out.print(" ,contentID:" + contentID);
			System.out.print(" ,objectID:" + objectID);
			System.out.println(" ,description:" + description);
			System.out.println("location:" + location); 

			//Download object
			try {
				String dest			= "/path/of/dowload/loaction";
				int size = is.available();
				String filename = dest + contentID +"-" + objectID + ".jpeg";
				OutputStream out = new FileOutputStream(new File(filename)); 
				int read = 0;
				byte[] bytes = new byte[1024];

				while ((read = is.read(bytes)) != -1) {

					out.write(bytes, 0, read);
				}

				is.close();
				out.flush();
				out.close();

				System.out.println("New file with size " + size + " created: " + filename);
			} catch (IOException e) {
				System.out.println(e.getMessage());
			}

		}

	} catch (RetsException e) {
		e.printStackTrace();
	}
	finally {
		if(session != null) {
			try {
				session.logout();
			}
			catch (RetsException e) {
				e.printStackTrace();
			}
		}
	}
}

Example of Geting Metadata:

public static void main(String[] args) throws MalformedURLException {

	//Create a RetsHttpClient (other constructors provide configuration i.e. timeout, gzip capability)
	RetsHttpClient httpClient = new CommonsHttpClient();
	RetsVersion retsVersion = RetsVersion.RETS_1_7_2;
	String loginUrl = "http://theurloftheretsserver.com";

	//Create a RetesSession with RetsHttpClient
	RetsSession session = new RetsSession(loginUrl, httpClient, retsVersion);    

	String username = "username";
	String password = "password";

	//Set method as GET or POST
	session.setMethod("POST");
	try {
		//Login
		session.login(username, password);
	} catch (RetsException e) {
		e.printStackTrace();
	}

	try {
		MSystem system = session.getMetadata().getSystem();
		System.out.println(
				"SYSTEM: " + system.getSystemID() + 
				" - " + system.getSystemDescription());

		for(MResource resource: system.getMResources()) {

			System.out.println(
					"    RESOURCE: " + resource.getResourceID());

			for(MClass classification: resource.getMClasses()) {
				System.out.println(
						"        CLASS: " + classification.getClassName() +
						" - " + classification.getDescription());
			}
		}
	}
	catch (RetsException e) {
		e.printStackTrace();
	} 	
	finally {
		if(session != null) { 
			try {
				session.logout(); 
			} 
			catch(RetsException e) {
				e.printStackTrace();
			}
		}
	}
}	

License

Trulia Java RETS Client is licensed under the MIT License

You can’t perform that action at this time.