سؤال

I'm trying to send some data to wcf server using restsharp and xamarine and get return value.Here's code on server side:

public interface IRestService
{
    [OperationContract(Name = "Login")]
    [WebInvoke(UriTemplate = "/Login/", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json,RequestFormat = WebMessageFormat.Json)]
    Boolean Login(String username);

and implementation of Login:

 Boolean IRestService.Login(string username)
        {
            if (string.IsNullOrEmpty(username))
                return false;
            else
                return true;
        }

here is how i'm trying to make connection on client side:

var client = new RestClient("http://192.168.0.187:9226/RestService.svc");
            client.AddDefaultHeader("ContentType", "application/json");
            var request = new RestRequest(String.Format("/Login/", "198440"));
            request.Method = Method.POST;
            request.AddParameter("username", "blabla");
            request.RequestFormat = DataFormat.Json;
            IRestResponse response1 = client.Execute<Boolean>(request);

When I'm tracing my wcf, i keep getting "The incoming message has an unexpected message format 'Raw'. The expected message formats for the operation are 'Xml', 'Json'." Any help?

هل كانت مفيدة؟

المحلول

You should not use AddParamater. This create a form encoded body for the POST

instead:

request.RequestFormat = DataFormat.Json;
request.AddBody(new { "username" = "blabla"}));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top