Привет У меня есть метод в моем веб-сервисе следующим образом
[HttpGet]
public HttpResponseMessage RegenerateReport(/*string reportObject*/)
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StringContent("Operation completed.");
return result;
}
Работает нормально, но я действительно хочу иметь возможность отправлять сериализованный объект JSON в эту функцию.
В качестве альтернативы , я попытался использовать тег [HttpPost] для этой функции и вызывать из своего кода следующим образом
var data = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(obj));
string _BaseUrl = ConfigurationManager.AppSettings["WebAPIBaseURL"];
HttpWebRequest request = WebRequest.Create(string.Format("{0}{1}",
_BaseUrl,
"test/RegenerateReport?FileName=" + RCFileName)) as HttpWebRequest;
// Set type to POST
request.Method = "Post";
request.ContentType = "application/xml";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Возвращает
Запрошенный ресурс не поддерживает http-метод 'GET'.
Обновление
Эта ошибка теперь удалена, так как я добавил оба тега [HttpGet] и [HttpPost] в мой веб-метод. Теперь дело в том, как передать сериализованный объект в метод веб-сервиса. Спасибо!