2010-06-30 97 views
2

我正在努力从我的休息客户端发送数据到我的其余服务器...REST,如何使用POST将数据从客户端发送到服务器?

我已经创建了一个休息服务器发送xml到客户端,并且工作正常。但是,从客户端发送数据到服务器,我很难。

客户:

_httpClientRead = new HttpClient("http://127.0.0.1:8000/"); 
var form = new HttpUrlEncodedForm(); 
form.Add("startDate", startDate); 
_httpClientRead.Post("test", form.CreateHttpContent()) 

服务器:

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "test")] 
Meeting CreateNewMeeting(string startDate); 

这个问题似乎是HttpUrlEncodedForm在客户端上。如果我在发布请求中发送空的HttpUrlEncodedForm对象,服务器将收到请求。添加HttpUrlEncodedForm属性时,服务器永远不会收到请求,并且没有错误消息!

缺少什么我在这里? (服务器正在返回xml)

应该如何将发布数据发送到服务器?

由于

回答

2

我认为这是一个问题,您在客户端使用HttpUrlEncodedForm,而在服务器端默认是Xml。为了清楚说明,请将服务器端的请求格式设置为RequestFormat = WebMessageFormat.Xml(将其设置为WebIncoke属性)。这样做后,您可以配置您的客户端发送有效的XML。另外请确保您使用正确的xml名称空间。处理这种情况最简单的方法是使用它将自动创建内容为你的函数:

var httpContent = HttpContentExtensions.CreateDataContract(objectToSendToServer); 
// And then send it using post: 
_httpClient.Post("serviceUrl", httpContent); 

请注意,您还需要设置DefaultHeader上HttpClient的为“application/XML”。

+0

感谢stiank81,解决了我的问题 – 2010-07-02 08:31:01

相关问题