簡體   English   中英

Android將字節數組(圖像)發布到WCF Restful服務

[英]Android post byte array(image) to WCF restful service

我有一個WCF服務,可以將字符串毫無問題地發布到其中,但是現在我正嘗試將字節數組作為字符串發布,這就是我遇到問題的地方。 我的目標是拍攝一張照片,將其轉換為byte(),然后將其發送到WCF服務,WCF服務將插入到我的數據庫中。 我不確定是否會采用這種錯誤的方式,但是我找不到將圖像保存到WCF的任何好方法。

這是httpposting的android代碼:

        HttpPost request = new HttpPost(SERVICE_URL + "/SaveAssmt");
        request.setHeader("Accept", "application/json");
        request.setHeader("Content-type", "application/json");

        JSONStringer assmt = new JSONStringer()
        .object()
            .key("data")
                .object()
                    .key("sFacID").value(res.get_sFacID())
                    .key("sResID").value(res.get_sResID())                   
                    .key("byteImage").value(new String(imagedata)) //imagedata is my byte() containing the image
                .endObject()
            .endObject();
        StringEntity entity = new StringEntity(assmt.toString());

        request.setEntity(entity);
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(request);

以下是WCF片段:

<OperationContract()> _
<WebInvoke(Method:="POST", UriTemplate:="SaveAssmt", BodyStyle:=WebMessageBodyStyle.WrappedRequest, ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json)> _
Sub SaveAssmt(data As AssmtResponses)

然后我的SaveAssmt方法只是插入數據庫,只要我不傳遞imagedata就可以。 傳遞圖像數據后,我立即收到400:Bad Request錯誤,因此我不確定是否是因為字節大小太大或什么情況。 如果有人能指出正確的方向,我將非常感謝您的幫助。 謝謝。

使用標准格式進行編碼,例如Base64(在Web和移動應用程序中常見)。 然后,您可以a)在服務器端將圖像重新配置為二進制圖像,或者b)將編碼后的字符串存儲在數據庫中並根據需要提供服務。 答案取決於您的特定應用程序需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM