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

Android将文件作为ByteArray上传到WCF REST服务,android,android-service,wcf-rest,Android,Android Service,Wcf Rest,我需要使用WCF rest服务发送字节数组文件。我必须在android中使用HttpPost方法发送数据。我正在使用的代码将状态设置为HTTP/1.1400 Bad Request error private final static String URI = "http://192.168.1.15/QueryService/Import/Test"; final HttpPost request = new HttpPost(URI); fina

我需要使用WCF rest服务发送字节数组文件。我必须在android中使用HttpPost方法发送数据。我正在使用的代码将状态设置为HTTP/1.1400 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();

很难看出你的要求有什么问题。解决此类错误的标准方法是:

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

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

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

        • 我在WCF服务方面也面临同样的问题。400错误请求意味着传递给方法的请求参数值与方法的参数不匹配。我使用Base64字符串编码将文件作为方法参数传递。希望它能对您有所帮助。

          我在使用WCF服务时也遇到了同样的问题。400错误请求意味着传递给方法的请求参数值与方法的参数不匹配。我使用Base64字符串编码将文件作为方法参数传递。可能会对您有所帮助。

          我使用Fiddler,但它不显示我的应用程序发出的http请求。我还将emulator代理更改为fiddler ip地址。当我通过emulator浏览任何网站时,它会在Fiddler中显示,但不会在Fiddler中显示我的应用程序请求。同样的代码也适用于StringEntity,但在Fiddler中没有显示任何进程。这听起来像是模拟器的问题。您可以使用中间客户端轻松拦截请求。我过去曾成功地使用过此功能。我可以将请求发送到服务,但似乎我发送的请求的格式不正确,我必须在web服务中接收。我还尝试通过multipartentity以流格式发送数据,但没有得到任何响应。我使用Fiddler,但它没有显示我的应用程序发出的http请求。我还将emulator代理更改为fiddler ip地址。当我通过emulator浏览任何网站时,它会在Fiddler中显示,但不会在Fiddler中显示我的应用程序请求。同样的代码也适用于StringEntity,但在Fiddler中没有显示任何进程。这听起来像是模拟器的问题。您可以使用中间客户端轻松拦截请求。我过去曾成功地使用过此功能。我可以将请求发送到服务,但似乎我发送的请求的格式不正确,我必须在web服务中接收。此外,我还尝试通过multipartentity以流格式发送数据,但没有得到任何响应。