У меня есть вызывающее приложение, которое имеет следующий код (я не могу изменить это приложение)
try
{
string request = string.Format("UniqueId={0}&MobileNumber={1}&UssdText={2}&Type={3}&AccountId={4}", "1", "2", "3", "4",
"5");
using (HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler())))
{
string url = "http://localhost/MocExternalEntityApis/MyUssd/Getdata3";
client.DefaultRequestHeaders.ExpectContinue = false;
StringContent content = new StringContent(request);
content.Headers.Clear();
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync(url, content).ConfigureAwait(false);
var readAsString = await response.Content.ReadAsStringAsync();
client.Dispose();
}
}
catch (Exception ex)
{
}
Мой контроллер веб-API, на который идет вызов, всегда имеет пустой объект
[HttpPost]
[ActionName("GetData3")]
public JsonResult<MyResponse> GetData3(MyInput obj)
{
if (obj != null)
{
Logger.DebugFormat("UniqueId:{0}, MobileNumber:{1}, UssdText:{2}, Type:{3}, AccountId:{4}",
obj.UniqueId, obj.MobileNumber, obj.UssdText, obj.Type, obj.AccountId);
if (obj.Type == "3")
{
Task.Factory.StartNew(async () =>
{
await ProcessCallbackHandlingofPinRespone(obj.UniqueId, obj.MobileNumber,
obj.UssdText);
});
}
else
{
Task.Factory.StartNew(async () =>
{
await ProcessCallbackHandlingOfNotification(obj.UniqueId, obj.MobileNumber,
obj.UssdText);
});
}
}
else
{
Logger.DebugFormat("Empty Object");
}
return Json(new MyResponse { Status = "OK" });
}
[Serializable]
public class MyInput
{
[JsonProperty(PropertyName = "UniqueId")]
public string UniqueId { get; set; }
[JsonProperty(PropertyName = "MobileNumber")]
public string MobileNumber { get; set; }
[JsonProperty(PropertyName = "UssdText")]
public string UssdText { get; set; }
[JsonProperty(PropertyName = "Type")]
public string Type { get; set; }
[JsonProperty(PropertyName = "AccountId")]
public string AccountId { get; set; }
}
Какие изменения мне нужно сделать в My Web Api, чтобы использовать данные.
Журналы вызовов к моему API похожи на Запрос:
Method: POST, RequestUri: 'http://localhost/MocExternalEntityApis/MyUssd/Getdata3', Version: 1.1, Content: System.Net.Http.StringContent, Headers:
{
Content-Type: application/json
}
UniqueId=1&MobileNumber=2&UssdText=3&Type=4&AccountId=5