[英]Unable to send post requests to REST through HTTPClient
我正在努力找出的快速問題。
我已經啟動並運行了一個與Postman一起正常運行的REST Api,我試圖弄清楚如何使用Xamarin Forms(使用HTTPClient)通過Post-request進行調用。
這是我當前的代碼:
public CreateFoundation()
{
InitializeComponent();
lblInstructions.FontAttributes = FontAttributes.Bold;
lblInstructions.FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label));
btnCreate.Clicked += async (s, e) =>
{
var arb = await PostCreateFoundation(txtCreateFoundation.Text);
await DisplayAlert("Clicked", "I was clicked. Text was: " + arb, "OK");
};
}
public async Task<string> PostCreateFoundation(string arbitrary)
{
Debug.WriteLine("I'm in!");
var client = new System.Net.Http.HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
var content = new StringContent(arbitrary);
var response = await client.PostAsync("http://myapi.com/RestfulAPI/api/Ole_foundations/Insert/", content);
var result = (response.Content.ReadAsStringAsync().Result);
return result;
}
當顯示返回的string
( arb
)時,我可以看到uri是http://myapi.com/RestfulAPI/api/Ole_foundations/Insert/.
,無論我以任意字符串的形式發送...
發送字符串“ test”時所得的URL為:
{MESSAGE”:“未找到與請求URI'http: //myapi.com/RestfulAPI/api/Ole_foundations/Insert/ '相匹配的HTTP資源。”}
編輯:API將任意字符串作為令牌,將預定義對象添加到數據庫中,並將傳入的任意字符串作為返回令牌返回。
REST API函數頭:
[HttpPost]
public string Insert(string s)
當操作參數是一個簡單的類型(例如字符串)時,WebAPI會假定它應該在查詢字符串中尋找它。 但是,您正在體內傳遞它。 嘗試將API端的方法簽名更改為:
public string Insert([FromBody]string s)
刪除uri上的最后一個“ /”
應該:
也是托德·邁納(Todd Meiner)所說的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.