【发布时间】:2012-03-13 04:34:11
【问题描述】:
我有一个 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 方法只是插入到数据库中,只要我不传递图像数据,它就可以工作。一旦我传递了图像数据,我就会收到一个 400: Bad Request 错误,所以我不确定是因为字节大小太大还是可能是什么情况。如果有人能指出我正确的方向,我将非常感谢任何帮助。谢谢。
【问题讨论】: