2014-08-31 2 views
0

Я пытаюсь отправить объект на HP-ALM, используя RESTSHARP. До сих пор я успешно прошел аутентификацию и получил некоторые ответы GET. Но, так или иначе, для каждого запроса POST посылает, я получаю такой ответ:POST to ALM через RestSharp: Неподдерживаемый тип носителя

qccore.general-ошибка неподдерживаемого типа

Это один из многих испытаний, которые я сделал (для размещения дефекта) СМИ. Какие-нибудь идеи о том, что здесь не так?

private RestRequest createPOSTRequest() 
    { 
     RestRequest Request = m_client.CreateRequest(m_client.BaseUrl + 
     "rest/domains/{domain}/projects/{project}/{entity-type}", Method.POST); 
     Request.AddUrlSegment("domain", m_client.domain); 
     Request.AddUrlSegment("project", m_client.project); 
     Request.AddUrlSegment("entity-type", "defects"); 

     Request.AddHeader("Content-Type", "application/xml"); 
     Request.AddHeader("Accept", "application/xml"); 

     Request.RequestFormat = DataFormat.Xml; 

     m_xmlBody = = @"<?xml version='1.0' encoding='UTF-8'? encoding='UTF-8' standalone='yes'?>"+ 
           "<Entity Type='defect'>"+ 
           "<Fields>" + 
           "<Field Name='detected-by'>"+ 
           "<Value>sa</Value>"+ 
           "</Field>"+ 
           "<Field Name='creation-time'>"+ 
           "<Value>2010-03-02</Value>"+ 
           "</Field>"+ 
           "<Field Name='severity'>"+ 
           "<Value>2-Medium</Value>"+ 
           "</Field>"+ 
           "<Field Name='name'>"+ 
           "<Value>Defect Entity.</Value>"+ 
           "</Field>"+ 
           "</Fields>"+ 
           "</Entity>"; 

     return Request; 
    } 

спасибо.

ответ

0

Content-Type не работает должным образом с AddHeader.

Решение here.

Целью этого является использование AddBody() вместе с RestRequest.RequestFormat. Пример:

var client = new RestClient(); 
// client.XmlSerializer = new XmlSerializer(); // default 
// client.XmlSerializer = new SuperXmlSerializer(); // can override with any implementaiton of ISerializer 

var request = new RestRequest(); 
request.RequestFormat = DataFormat.Xml; 
request.AddBody(objectToSerialize);