假设我有一个Web服务,它接受电子邮件ID和密码作为url中的参数。我必须通过电子邮件ID和密码验证用户。 using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.Text;using System.ServiceModel.Web;namespace WebApp.Services{[ServiceContract]public interface IService { [WebInvoke(Method = "GET", UriTemplate = "/authenticate/{emailId}/{password}", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] [OperationContract] Boolean Authenticate(string emailId, string password); }}
我们称之为Web服务:
http://localhost:14176/Services/Service.svc/Authenticate/sushant.bhatnagar@greatdevelopers.com/123
因为电子邮件包含'。'它不是由Web浏览器编码的,因此不会调用Web服务功能。
除了查询字符串之外,还有任何解决方案可以在url中传递电子邮件ID。
答案 0 :(得分:0)
如果您可以使用POST:
[ServiceContract]
public interface IMyService
{
[OperationContract]
bool Authenticate(EmailCredential request);
}
[DataContract]
public class EmailCredential
{
[DataMember]
public string EmailId {get; set;}
[DataMember]
public string Password {get; set;}
}
并使用WebClient或WebHttpRequest使用该xml调用服务(我现在不知道json是如何为xml所示)
<EmailCredential >
<EmailId >sushant.bhatnagar@greatdevelopers.com</EmailId >
<Password >123</Password >
</EmailCredential >