2012-04-26 5 views
0

У меня есть веб-сервис с Джерси, у которого есть клиент на C#. Следуя фрагменту.jersey client in C#

var request =(HttpWebRequest)WebRequest.Create(uri); 
     request.Method = "POST"; 
     request.ContentType = "application/xml"; 
     Stream stream = request.GetRequestStream(); 
     byte[] b = memstreamxml.ToArray(); 
     stream.Write(b, 0, b.Length); 
     stream.Close(); 
     var response = (HttpWebResponse)request.GetResponse(); 

С этим запросом, который отправляет с байтами xml, я получаю ответ на ошибку 400 или 415. Я попытался использовать @Consumes различные MediaTypes, пока никто не работает. Может ли кто-нибудь дать мне понять, как отправить запрос xml с C# на веб-сервис Джерси? Я также использую @XmlRootElement для моего pojo для обработки ввода xml.

Благодарим за помощь.

+0

Я получил его, когда запрос contentType «application/x-www-form-urlencoded» и jersey webservice @Consumes APPLICATION_FORM_URLENCODED. Кажется, что нет никакого способа напрямую Marshall XML в объект pojo. – bhochhi

ответ

0

Я получил его, когда запрос contentType «application/x-www-form-urlencoded» и jersey webservice @Consumes APPLICATION_FORM_URLENCODED. Infact это не проблема с contentType, но неспособность ввода Marshall xml в POJO-объекты, как ожидалось webresource. Итак, как только я изменяю тип параметра службы как String, он начинает работать. Конечно, вам нужно разобрать строку xml для создания объекта, если нет другого пути.

Смежные вопросы