 <p>I solved this problem without using OData. There is a URL available that will return just the binary data. So with this URL I can use other Java classes to stream the data directly to disk.</p> <p>So with this URL:</p> <blockquote> <p>www.example.com/OData.svc/File/Data/$value</p> </blockquote> <p>(which returns just the binary data)</p> <p>We can create a URL connection and download it:</p> <pre><code>URL url = new URL(webPage); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); File file = new File(dir, fileName);//need to create a file based on your storage paths FileOutputStream out = new FileOutputStream(file); InputStream in = urlConnection.getInputStream(); byte[] buffer = new byte[1024]; int i = 0; while ((i = in.read(buffer)) &gt; 0) { out.write(buffer, 0, i); } out.flush(); out.close(); in.close(); </code></pre>