Получение абсолютно никакого ответа от веб-API при использовании HttpResponseMessage
Я использую HttpResponseMessage в своем веб-API, потому что он значительно упрощает вещи. Проблема, с которой я сталкиваюсь, заключается в том, что при тестировании кода в VS 2017, работающем под управлением IIS Express, мой код выполняется без проблем, но я ничего не получаю в ответ, когда тестирую из Postman. Мне интересно, связано ли это с заголовками и / или конфигурацией. Вот что почтальон отправляет обратно:
Не удалось получить ответ. При подключении к http://localhost:12345/Url/RequestUrl произошла ошибка.
Это часть кода, которая выполняется:
[OperationContract]
[ADAuthorize(Action = "RequestUrl", Controller = "Url")]
[HttpPost]
public HttpResponseMessage RequestUrl(Stream inputServiceRequestParameters)
{
Request = new HttpRequestMessage();
Configuration = new HttpConfiguration();
try
{
// Retrieve and place JSON parameters into object.
var serviceRequestParameters = JsonFunctions.GetServiceRequestParameters(inputServiceRequestParameters);
// Retrieve member GUID from LDAP.
var contactId = LdapFunctions.GetMemberCrmGuid(serviceRequestParameters.MemberNumber);
// Member information not found in LDAP, so return without processing.
if (contactId == null)
{
var response = Request.CreateResponse(HttpStatusCode.InternalServerError,
JsonFunctions.BuildErrorResponse("", Constants.ValidationMessage.MEMBER_NOT_IN_LDAP));
response.Content = new StringContent(JsonFunctions.BuildErrorResponse("", Constants.ValidationMessage.MEMBER_NOT_IN_LDAP));
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
return response;
}
[Остальная часть класса продолжается после этого...]
Весь этот код работает прекрасно, но ничего не возвращается. Даже Fiddler жалуется, что ReadResponse() не удалось.
Я посмотрел на безумное количество примеров и до сих пор не могу понять, что происходит, что мне не хватает.
2 ответа
Я нашел ответ: в основном у меня была путаница ссылок на MVC и Web API с небольшим количеством WFC в конфигурации! Я знаю, что это происходит, когда вы ссылаетесь на старый экспериментальный код. Урок наверняка усвоен. Дело в том, что.Net не будет кричать о каких-либо ошибках, просто молча провалится.
contactId
может быть нулевым Если это так, ваш код, вероятно, возвращает нулевой ответ, что приведет к описанному вами поведению.