0
我有一個WCF服務,我能夠發佈字符串,沒有問題,但現在我想發佈一個字節數組作爲一個字符串,這就是我在哪裏得到問題。我的目標是拍攝一張照片,將其轉換爲一個字節(),將其發送給WCF服務,並將WCF服務插入到我的數據庫中。我不確定是否我以這種錯誤的方式進行,但我無法找到將圖像保存到WCF的任何好解釋。Android的後字節數組(圖片)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。只要我傳遞imagedata,就會得到一個400:錯誤請求錯誤,所以我不確定它是否因爲字節太大或者情況可能如此。如果任何人都能指引我正確的方向,我會非常感謝任何幫助。謝謝。
感謝您的回覆。我嘗試使用.key(「byteImage」)。值(Base64.encode(imagedata,Base64.DEFAULT)),但它不保存整個字符串。它看起來只能保存字符串中前20個字符。 – bflosabre91 2012-02-22 22:34:53
我沒有base64編碼在Android上,但它聽起來像它使用緩衝區大小隻有20個字節(給或帶)的流式機制。如果是這樣,找到一個編碼示例,允許您將整個圖像「流」到base64。 – 2012-02-22 22:38:13