2013-05-29 43 views
1

我有一个Android应用程序。我想向WCF Web服务发送请求。调用WCF Web服务时的错误请求

的服务是:

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

但我总是得到一个错误的请求错误。它没有达到服务(不会进入断点)。

任何想法可能是什么问题?

谢谢

+0

尝试在服务器端启用跟踪 - 跟踪应该告诉您为什么请求被认为是不好的。 – carlosfigueira

回答

0

同样的问题:400错误的请求。 尝试更改内容类型:

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

它解决了我的问题。

相关问题