Android 将文件作为 ByteArray 上传到 WCF REST 服务

发布于 2024-12-22 14:58:31 字数 746 浏览 1 评论 0原文

我需要使用 WCF Rest 服务发送字节数组文件。我必须使用 android 中的 HttpPost 方法发送数据。我正在使用的代码给出的状态为 HTTP/1.1 400 Bad Request 错误。

  private final static String URI = "http://192.168.1.15/QueryService/Import/Test";
         final HttpPost request = new HttpPost(URI);
            final HttpClient httpClient = new DefaultHttpClient();
            final ByteArrayEntity entity = new ByteArrayEntity(fileToBytes(pathToOurFile));
            entity.setContentType("application/octet-stream");
            entity.setChunked(true);
            request.setEntity(entity);
            final HttpResponse hr = httpClient.execute(request);
           final StatusLine status = hr.getStatusLine();
        httpClient.getConnectionManager().shutdown();

I need to send a byte arrray file using WCF rest services. I have to send the data using HttpPost method in android. The code which i am using give the status as HTTP/1.1 400 Bad Request error.

  private final static String URI = "http://192.168.1.15/QueryService/Import/Test";
         final HttpPost request = new HttpPost(URI);
            final HttpClient httpClient = new DefaultHttpClient();
            final ByteArrayEntity entity = new ByteArrayEntity(fileToBytes(pathToOurFile));
            entity.setContentType("application/octet-stream");
            entity.setChunked(true);
            request.setEntity(entity);
            final HttpResponse hr = httpClient.execute(request);
           final StatusLine status = hr.getStatusLine();
        httpClient.getConnectionManager().shutdown();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热血少△年 2024-12-29 14:58:31

很难判断您的请求有什么问题。解决此类错误的标准方法是:

  • 为您的服务创建一个 WCF 客户端。验证它是否按预期工作。
  • 使用 Fiddler 或其他合适的工具来拦截客户端生成的 HTTP 请求。标题和正文都很重要。
  • 修改您的 Android 请求以生成与 WCF 客户端完全相同的请求。

It is difficult to tell what is wrong with your request. The standard way of resolving this kind of errors is:

  • Create a WCF client for your service. Verify that it works as expected.
  • Use Fiddler or another suitable tool to intercept the HTTP request your client is generating. Both the headers and the body are important.
  • Modify your Android request to generate the exact same request as the WCF client.
踏雪无痕 2024-12-29 14:58:31

我在 WCF 服务中也遇到了同样的问题。 400 Bad request 表示您传递给方法的请求参数值与方法的参数不匹配。我使用 Base64 字符串编码将文件作为方法参数传递。愿它能帮助你。

I was also facing same problem with WCF service. 400 Bad request means request parameter value which you are passing to method doesn't match with method's parameter. I have used Base64 string encoding to pass file as method parameter. May it'll help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文