当前位置: 首页 > 知识库问答 >
问题:

在Json中发送图像:400错误请求

戎泰
2023-03-14

我正试图从我的android向IIS Web服务发送一个包含一类数据的图像。(C#)

问题是我得到400错误请求

图像正在被编码为< code>Base64。然后与其余的类元素一起放入< code>json中。

我猜想Base64在Json中是无效的。因此服务器无法理解。如果我将字符串设置为“”,则可以接受帖子。

所以问题是,如何使我的Base64Json数组中有效?(我尝试了URL.Encode,但没有成功)。

或者应该如何从android向webservice发送图像?

 Gson gson = new Gson();

 String json = gson.toJson(record);  // record has param { String base64Photo }

共有2个答案

谷梁昊空
2023-03-14

老实说,我从来没有从Android上传过图片到IIS网络服务,但是在其他任何情况下,我总是使用< code >文件。创建文件并将其作为< code>MultipartEntity上传很容易。此外,您不必一起使用< code>Base64,这很好,因为它为您节省了使用< code>Base64带来的大约33%的额外开销。

private File createFileFromBm(Bitmap pic){
    File f = new File(context.getCacheDir(), "image");

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    pic.compress(CompressFormat.JPEG, 100, bos);
    byte[] data = bos.toByteArray();

    try{
        FileOutputStream fos = new FileOutputStream(f);
        fos.write(data);
        fos.close();
    } catch (IOException e){
        Log.e(TAG, e.toString());
    }

    return f;
}

以下是创建< code >多实体的方法

MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE;              
entity.addPart("photo", new FileBody(file, "image/jpeg"));
httpPost.setEntity(entity);
return httpClient.execute(httpPost, responseHandler);

我在这里使用了一个HttpPost和一个基本响应处理程序来接收来自服务器的JSON输出进行处理,但您可以做任何您喜欢的事情。

郎思远
2023-03-14

图像有多大?我很确定你已经超过了IIS Json的大小限制(默认为4 MB)。

检查一下这个http://geekswithblogs.net/frankw/archive/2008/08/05/how-to-configure-maxjsonlength-in-asp.net-ajax-applications.aspx或者这个http://www.webtrenches.com/post.cfm/iis7-file-upload-size-limits

祝你好运!

 类似资料:
  • 我正在使用Basecamp API,它是一个REST(JSON)API,使用HTTPS上的基本HTTP身份验证。 这应该是一个GET请求,但当我使用GET运行我的代码时,我收到了: 无法发送包含此谓词类型的内容正文 当我将其作为POST运行时,我会收到: {“状态”:“400”,“错误”:“错误的请求”} 有谁知道为什么会发生这种情况? 在此代码中,我显然交换了用户名,密码,项目名称和URL,但在

  • 我有一个带有更新方法的控制器。该方法应在RequestBody中获取产品,但这会导致请求错误。我和邮递员一起发了一封邮件。JSON作为原始JSON发送,请求内容类型为application/JSON。 正文中的JSON是 请求响应不良的原因是什么?JSON似乎格式化正确,当没有正文时调用更新方法。

  • 我的Spring3.1 mvc服务器可以通过添加来响应正确的json结果,在spring设置文件上应该没有问题。servlet.xml包括 我把杰克逊罐子放在类路径中。

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!

  • 我有以下WCF服务操作: 我可以通过导航到服务在浏览器中加载WSDL。但是,当我在Jmeter中向同一服务发送“SOAP/XML-RPC请求”时,我收到了响应代码-400-错误请求。 以下是我正在使用的Soap消息: