当我使用浏览器尝试使用时,我的工作正常,我的意思是,所有正确的值都会返回。
但是当我尝试使用POST方法从我的客户端APP执行此操作时,服务器执行的操作无关紧要,客户端获取空值。
这是我的回归课程:
[DataContract]
public class ResponseModel
{
[DataMember(Name = "exito", Order = 0)]
public bool Exito { get; set; }
[DataMember(Name = "logout", Order = 1)]
public bool LogOut { get; set; }
[DataMember(Name = "frase", Order = 2)]
public String Frase { get; set; }
}
这是我的服务合同
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "HelloWorld")]
ResponseModel HelloWorld();
}
答案 0 :(得分:0)
由于您尚未发布ResponseModel HelloWorld();
的实施方式以及如何提出请求,因此我会尝试猜测!
如果您要向服务发布一些数据,则需要使用 XML 或 JSON 进行 POST 的方法。对于此更改,您的 ServiceContract 就像这样:
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "HelloWorld")]
ResponseModel HelloWorld();
}
如果您想在JSON中发出请求,我已添加 RequestFormat = WebMessageFormat.Json 。对于 XML ,请将其设为 RequestFormat = WebMessageFormat.XML 。
现在,当您发出请求时,请在 JSON / XML 中添加数据。 如果您可以发布您的请求格式,则可以提供更合适的建议。要在 POST 请求中发送数据,您必须设置请求标头 Content-Type:application / json;字符集= UTF-8 即可。 我希望这会有所帮助。