0

RESTSHARP を使用して、HP-ALM にエンティティを投稿しようとしています。これまでのところ、認証に成功し、いくつかの GET 応答を正常に受け取りました。しかし、どういうわけか、送信する POST リクエストごとに、次の応答が返されます。

qccore.general-error サポートされていないメディア タイプ

これは、(欠陥を投稿するために) 私が行った多くの試行の 1 つです。ここで何が間違っているかについてのアイデアはありますか?

    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

ここで解決します。

これを達成するための意図された方法は、RestRequest.RequestFormat と共に AddBody() を使用することです。例:

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 に答える