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

时间:2011-12-23 07:14:49

标签: android android-service wcf-rest

我需要使用WCF休息服务发送一个字节arrray文件。我必须在android中使用HttpPost方法发送数据。我正在使用的代码将状态指定为HTTP / 1.1 400错误请求错误。

  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();

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我也遇到了与WCF服务相同的问题。 400错误请求意味着您传递给方法的请求参数值与方法的参数不匹配。我使用Base64字符串编码将文件作为方法参数传递。愿它能帮到你。