2013-05-29 3 views
1

У меня есть приложение для Android. Я хочу отправить запрос в веб-службу WCF.Плохой запрос при вызове веб-службы WCF

услуги является:

[OperationContract] 
Message submitData(Stream streamdata); 



[WebInvoke(Method = "POST", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "submitData")] 

public Message submitData(Stream streamdata) 
    { 
     StreamReader reader = new StreamReader(streamdata); 
     string jsonString = reader.ReadToEnd(); 
     reader.Close(); 
     reader.Dispose(); 
     return WebOperationContext.Current.CreateTextResponse(JsonSyncManager.submitVotes(jsonString), "application/json; charset=utf-8", Encoding.UTF8); 
    } 

Я попробовал службу на Скрипач и он работает правильно.

Однако из моего приложения я пытаюсь следующий

JSONObject j = new JSONObject(); 
j.put("voters", "test"); 


String url = "http://127.0.0.1:8733/Service/submitData"; 

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost request = new HttpPost(url); 

StringEntity s = new StringEntity(j.toString(), "UTF-8"); 

s.setContentType("application/json;charset=UTF-8"); 
request.setHeader("Accept", "application/json"); 
request.setHeader("Content-Type", "application/json; charset=utf-8"); 
request.setEntity(s); 

HttpResponse response = httpclient.execute(request); 

Но я всегда получаю Плохую ошибку запроса. Он не доходит до службы (не войдет в точку останова).

Любая идея в чем проблема?

Thanks

+0

Попробуйте включить трассировку на стороне сервера - следы должны сообщать вам, почему запрос считается плохим. – carlosfigueira

ответ

0

Такая же проблема: 400 Bad Request. Попробуйте изменить Content-Type:

request.setHeader("Content-Type", "application/json"); 

Это фиксированная проблема для меня.

Смежные вопросы