Fix #2225869 (Regression in attachment loading / Exchange 2003)

* The fix to bug #2191778 inadvertently broke attachment loading for
  Exchange 2003 servers; the server responds with a 403 error (indicating
  an authentication issue)
* All other communications with the server work properly
* We use a slightly different set of calls in the case of attachments (we
  wanted to change as little as possible in the fix to #2191778) than we
  do in the other cases
* The fix here is to use the same calling sequence for attachments that we
  use elsewhere
* This fix has been observed to work on multiple servers, and in various
  SSL scenarios (on/off, trusted/untrusted)

Change-Id: Ie2804ddcbfa2b10edff42f7a3811734c325e933d
diff --git a/src/com/android/exchange/EasSyncService.java b/src/com/android/exchange/EasSyncService.java
index 0f2a345..54e4264 100644
--- a/src/com/android/exchange/EasSyncService.java
+++ b/src/com/android/exchange/EasSyncService.java
@@ -295,12 +295,10 @@
         Attachment att = req.att;
         Message msg = Message.restoreMessageWithId(mContext, att.mMessageKey);
         doProgressCallback(msg.mId, att.mId, 0);
-        HttpClient client = getHttpClient(COMMAND_TIMEOUT);
-        String us = makeUriString("GetAttachment", "&AttachmentName=" + att.mLocation);
-        HttpPost method = new HttpPost(URI.create(us));
-        method.setHeader("Authorization", mAuthString);
 
-        HttpResponse res = client.execute(method);
+        String cmd = "GetAttachment&AttachmentName=" + att.mLocation;
+        HttpResponse res = sendHttpClientPost(cmd, null, COMMAND_TIMEOUT);
+
         int status = res.getStatusLine().getStatusCode();
         if (status == HttpStatus.SC_OK) {
             HttpEntity e = res.getEntity();
@@ -428,9 +426,11 @@
 
         String us = makeUriString(cmd, extra);
         HttpPost method = new HttpPost(URI.create(us));
+        // Send the proper Content-Type header
+        // If entity is null (e.g. for attachments), don't set this header
         if (msg) {
             method.setHeader("Content-Type", "message/rfc822");
-        } else {
+        } else if (entity != null) {
             method.setHeader("Content-Type", "application/vnd.ms-sync.wbxml");
         }
         setHeaders(method);