0

我正在尝试使用 RESTSHARP 在 HP-ALM 上发布一个实体。到目前为止,我成功地进行了身份验证并得到了一些 GET 响应。但是,不知何故,对于我发送的每个 POST 请求,我都会收到以下响应:

qccore.general-error 不支持的媒体类型

这是我进行的众多试验之一(用于发布缺陷)。关于这里有什么问题的任何想法?

    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;
    }

谢谢你。

4

1 回答 1

1

Content-Type不能正常工作AddHeader

解决方案在这里

实现此目的的预期方法是将 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);
于 2014-08-31T12:56:46.090 回答