我创建了一个带有wcf的web服务,它获取了两个字符串参数并给出了一个字符串值,这个Web服务在IIS中托管并且它正常工作,这是我的代码的一部分,它提供了json格式:
[OperationContract]
[WebInvoke(UriTemplate = "AuthUserPass", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
string AuthUserPass(string UserName);
现在我想以xamarin形式从这个服务中检索数据,但我不知道该怎么做:我的代码是:
public async Task<int> AuthUserPassAsync(string username,string password)
{
int sessionResponseJson = 1000;
var uri = new Uri(string.Format(Constants.AuthUrl, string.Empty));
Users userJson = new Users();
userJson.UserName = username;
userJson.Password = password;
var json = JsonConvert.SerializeObject(userJson);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("login", content);
var result = response.Content.ReadAsStringAsync().Result;
if (result != "")
{
sessionResponseJson = JsonConvert.DeserializeObject<int>(result);
}
return sessionResponseJson;
}
从我的Web服务方法我可以看到,它只需要一个字符串参数'UserName'
string AuthUserPass(string UserName);
在调用Web服务方法时,您传递的对象有两个字段'UserName'和'Password'
Users userJson = new Users();
userJson.UserName = username;
userJson.Password = password;
你能理解的是不正确的。我相信修复它会解决你的问题。要修复,您可以将Web服务方法参数类型更改为类型,其中包含UserName和Password字段。