2013-05-15 3 views
3

Я написал функции для кодирования изображения и отправки его в wcf. Um не использует параметры строки запроса. Um, используя URL-адрес для передачи параметров. Это мой код для Android, и это отлично работает.Как отправить базовую 64 кодированную строку с android на wcf

public JSONUpdate(String jobNumber, String documentType, 
     String documentFilePath, String DocumentFileName, 
     String encodedImage, String url) { 

    this.url = url + jobNumber.trim() + "/" + documentType.trim() + "/" 
      + documentFilePath.trim().replace("/", "___") + "/" 
      + DocumentFileName.trim() + "/" + encodedImage; 
} 



public boolean updateService() { 
    boolean result = false; 
    HttpClient httpClient = new DefaultHttpClient(); 
    try { 
     HttpPost httpPost = new HttpPost(this.url); 
     try { 
      HttpResponse httpResponse = httpClient.execute(httpPost); 
      if (httpResponse != null) { 
       if (httpResponse.getStatusLine().getStatusCode() == 200) 
        result = true; 
      } 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } catch (Exception ex) { 
     String p = ex.getLocalizedMessage(); 
     String y = ex.getMessage(); 
    } 
    if (!result) { 

    } 
    return result; 
} 

В моей реализации WCF, которая также работает отлично, за исключением, когда я включаю закодированный параметр строки он выдает ошибку, потому что закодированная строка содержит «+» и «\». Таким образом, URL-адрес становится сломанным. Это мой WCF код для службы

[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, 
    UriTemplate = "attachment/{jobNumber}/{documentType}/{documentFilePath}/{DocumentFileName}/{encodedImage}", 
    BodyStyle = WebMessageBodyStyle.Bare)] 
    public bool InsertAttachment(String jobNumber, String documentType, 
     String documentFilePath, String documentFileName, 
     String encodedImage = null) 
    { 
     //implementation was written 
    } 

как передать закодированное 64 битовой строки безопасно в качестве параметра с + и \? У меня нет большого опыта в этом. Я буду благодарен, если кто-нибудь может дать мне предложение.

+0

Что является вашей целевой Android версии? – rekire

+0

Android 3.0 - это моя версия Android – Kalanamith

ответ

1

Попробуйте Base64 реализацию Android, которая Ивеко поскольку API 8.

Base64.encodeToString(youtString.getBytes(...), Base64.NO_WRAP + Base64.URL_SAFE); 
+0

можно ли применить это к изображению? – Kalanamith

+1

Уверен, что изображение находится в массиве байтов. – rekire

+0

Но почему я получаю исключение из памяти? когда помещаете это в http сообщение? – Kalanamith

Смежные вопросы