Загрузка файла Android в виде ByteArray в службы WCF REST - PullRequest
1 голос
/ 23 декабря 2011

Мне нужно отправить файл массива байтов с помощью служб отдыха WCF. Я должен отправить данные с помощью метода HttpPost в Android. Код, который я использую, дает статус ошибки 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();

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

Трудно сказать, что не так с вашим запросом.Стандартный способ устранения ошибок такого рода:

  • Создайте клиент WCF для вашей службы.Убедитесь, что он работает должным образом.
  • Используйте Fiddler или другой подходящий инструмент для перехвата HTTP-запроса, который генерирует ваш клиент.Важны как заголовки, так и тело.
  • Измените свой запрос Android, чтобы он генерировал точно такой же запрос, как и клиент WCF.
0 голосов
/ 23 декабря 2011

Я также столкнулся с той же проблемой со службой WCF.400 Неверный запрос означает, что значение параметра запроса, которое вы передаете методу, не совпадает с параметром метода.Я использовал строковое кодирование Base64 для передачи файла в качестве параметра метода.Пусть это тебе поможет.

...