Как сделать метод post и вызвать его из моего настольного приложения
привет,
Мне нужно реализовать синхронизацию элементов учета в облаке, поэтому у меня уже есть методы WCF для синхронизации, но я хочу, чтобы веб-API публиковал данные json, а затем хранил их в веб-БД.
как и ранее, мы сделали метод get для android-приложения и возвращаем данные в формате json.
[AcceptVerbs("Get")] public DataTable Inflow(long TenantId, long SalesPersonId) { DataTable dtReceivable = new DataTable(); return dtReceivable }
для этого android разработчик называл этот url как
MyURL/api/MobileAPI/приток?TenantId=1234& SalesPersonId=22
а затем получение данных в формате json
Теперь я хочу создать метод Post для синхронизации с веб-базой данных.
string JsonString = Inventory();
Мне нужно пройти этот JSON строку с клиента.
Я хочу опубликовать это через свой URL-адрес, например
using (HttpClient httpclient = new HttpClient()) { string url = "http://localhost:51411/api/MobileAPI/Inventory?TenantId=" + CommonClass.tenantId + ""; String uriToCall = String.Format(url); var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("", str) }); }
Я не понимаю, с чего начать, так что, пожалуйста, кто-нибудь может мне помочь.
Что я уже пробовал:
Я попробовал это сделать, прочитав несколько статей в google, но все равно это не очень хорошо....
string str = Inventory(); //HttpClient http = new HttpClient(); using (HttpClient httpclient = new HttpClient()) { var http = (HttpWebRequest)WebRequest.Create(new Uri("http://localhost:51411/api/MobileAPI/Inventory?TenantId='" + CommonClass.tenantId + "'&JsonInventory='" + str)); http.Accept = "application/json"; http.ContentType = "application/json"; http.Method = "POST"; }
и мой код веб-API
[HttpPost] [AcceptVerbs("POST")] public HttpResponseMessage Inventory(long TanantId, [FromBody]string JsonInventory) { try { List<Inventory> lstInventory = JsonConvert.DeserializeObject<List<Inventory>>(JsonInventory); foreach (var item in lstInventory) { } return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { throw ex; } }
Моя инвентарная модель такова
public class Inventory { public string ItemId { get; set; } public string Category { get; set; } public decimal Price1 { get; set; } public string Description { get; set; } public int QuantityAvailable { get; set; } public int QuantityOnHand { get; set; } public string Method { get; set; } }
я беспокоюсь, чтобы вызвать этот url-адрес из оконного приложения, даже если мое веб-приложение также находится в рабочем режиме.