Question

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?

Était-ce utile?

La solution

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

instead:

request.RequestFormat = DataFormat.Json;
request.AddBody(new { "username" = "blabla"}));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top