приложение / мыло + msbin1 в андроид - PullRequest
0 голосов
/ 11 октября 2011

Мне просто нужно отправить запрос в веб-сервис через обычный HTTP-запрос POST, чтобы получить ответ. Я передал требуемый параметр в тело. Пока я его запускаю, я получил сообщение «Не удается обработать сообщение, так как тип содержимого« text / json » не был ожидаемый тип 'application / soap + msbin1'. " ошибка. Когда я проводил исследование по этому вопросу, из-за того, что «веб-сервис требовал, чтобы запрос имел определенный тип содержимого, а именно« application / soap + msbin1 ». Когда я заменил ожидаемый тип содержимого., я получил ошибку Bad Request. Не знаю, как оправиться от этого.

Мой код: ...

    DefaultHttpClient httpClient = new DefaultHttpClient();
    ResponseHandler <String> resonseHandler = new BasicResponseHandler();
    HttpPost postMethod = new HttpPost("My URL");
    postMethod.setHeader( "Content-Type", "text/json"); 
    postMethod.setHeader( "Cache-Control", "no-cache"); 



    JSONObject json = new JSONObject();
    json.put("userName", "My Username");
    json.put("password", "My Password");
    json.put("isPersistent",false);


    postMethod.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
    HttpResponse  response = httpClient.execute(postMethod);

...

Ответы [ 2 ]

0 голосов
/ 11 октября 2011
HttpPost request = new HttpPost(url);    
StringEntity entity = new StringEntity(json.toString());
                             entity.setContentType("application/json;charset=UTF-8");                            entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
                             request.setHeader("Accept", "application/json");
                             request.setEntity(entity); 

try{
DefaultHttpClient httpClient = new DefaultHttpClient();
    response = httpClient.execute(request); 
}

Попробуйте использовать что-то вроде этого.у меня это сработало.

Спасибо.N_JOY.

0 голосов
/ 11 октября 2011

Похоже, вы пытаетесь вызвать службу WCF SOAP.Эта служба ожидает правильной связи SOAP (= нет JSON), и, кроме того, она использует двоичную кодировку MS сообщений SOAP (то есть то, что описывает тип контента), которая не совместима, поэтому я сомневаюсь, что вы сможете использовать ее на устройстве Android (если вы не найдетереализация этой кодировки для Java / Android).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...