[英]How to use binding property as a function parameter in C# Xamarin Forms
[英]How to call web api with multiple parameter in c# xamarin forms
我知道這是一個重復的問題。 我已經嘗試了許多關於stackoverflow的示例。 但是API仍未調用,並且顯示404 not found錯誤。 我嘗試了以下示例,
范例1:
using (var loginData = new MultipartFormDataContent())
{
loginData.Add(new StringContent(JsonConvert.SerializeObject(login.Email)), "emailId");
loginData.Add(new StringContent(JsonConvert.SerializeObject(this.Password)), "password");
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await httpClient.PostAsync("http://6cxsfera.ngrok.io/api/users/authenticate", loginData);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
Application.Current.MainPage = new AppShell();
}
}
范例2:
JObject loginData = new JObject();
loginData.Add("emailId", login.Email);
loginData.Add("password", this.Password);
var httpClient = new HttpClient();
var httpContent = new StringContent(loginData.ToString(), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://6cxsfera.ngrok.io/api/users/authenticate", httpContent);
我的API:
[Route("authenticate")]
[HttpPost]
public HttpResponseMessage Login(HttpRequestMessage request, string emailId, string password)
{
}
請建議我以c#xamarin形式將多個參數傳遞給Web API。
您可以由郵遞員生成代碼。 然后檢查帽子,你失蹤了。 您甚至可以使用郵遞員生成的相同代碼。 https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/
只需安裝restSharp nuget軟件包即可。它將與郵遞員生成的代碼一起使用。
無需創建JObject,而是創建一個類,其中包含您的emailId和password屬性,如下所示。
public class UserModel
{
public string emailId {get;set;}
public string password {get;set;}
}
現在稍后實例化UserModel並分配如下值
UserModel user = new UserModel
{
emailId = "emailId",
password = "password"
};
如下序列化UserModel
string serializedModel = await Task.Run(() => JsonConvert.SerializeObject(user));
var contents = new StringContent(serializedModel);
contents.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
發出發布請求
var response = await httpClient.PostAsync("http://6cxsfera.ngrok.io/api/users/authenticate", contents);
如果上述解決方案不起作用,請嘗試更改您的Web Api方法路線,如下所示
Route["api/users/authenticate"]
希望這能解決您的問題... :)
您可以嘗試以下方法:
using (var httpclient = new HttpClient())
{
var formcontent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string,string>("emailId",emailId),
new KeyValuePair<string, string>("password","password")
});
var request = await httpclient .PostAsync("http://6cxsfera.ngrok.io/api/users/authenticate", formcontent);
request.EnsureSuccessStatusCode();
var response = await request.Content.ReadAsStringAsync();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.