我有一个WCF服务,我能够发布字符串没有问题,但现在我正在尝试将字节数组作为字符串发布,这是我遇到问题的地方。我的目标是拍照,将其转换为byte(),将其发送到WCF服务,WCF服务将插入到我的数据库中。我不确定我是否会以错误的方式行事,我找不到任何关于将图像保存到WCF的好解释。
以下是httpposting的安卓代码:
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:错误的请求错误,所以我不确定它是否因为字节大小太大或者情况可能是什么。如果有人能指出我正确的方向,我真的很感激任何帮助。感谢。
答案 0 :(得分:0)
使用标准格式进行编码,例如Base64(在Web和移动应用程序中很常见)。然后,您可以a)在服务器端将图像重建为二进制,或者b)将编码的字符串存储在数据库中并根据需要提供。答案取决于您的特定应用需求。