C# 使用RestSharp的C Post XML文件

C# 使用RestSharp的C Post XML文件,c#,http-post,restsharp,rest-client,C#,Http Post,Restsharp,Rest Client,我已经编写了一个将消息发布到uri的方法 public string RestClientPost(string uri, string message = null) { var client = new RestClient(uri); var request = new RestRequest(Method.POST); request.AddHeader("Accept", "text/xml"); if (!str

我已经编写了一个将消息发布到uri的方法

public string RestClientPost(string uri, string message = null)
    {
        var client = new RestClient(uri);
        var request = new RestRequest(Method.POST);
        request.AddHeader("Accept", "text/xml");
        if (!string.IsNullOrEmpty(message))
            request.AddParameter(message, ParameterType.RequestBody);

        var result = "";
        var response = client.Execute(request);

        if (response.StatusCode == HttpStatusCode.OK)
        {
            result = response.Content;
            Console.WriteLine(result);
        }
        else
        {
            result = response.StatusCode.ToString();
        }


        return result;
    }
下面的代码是用上面的方法来发布的

public void test123()
    {
        string uri = "myuri"; //private uri, cannot expose.
        var file= System.IO.File.ReadAllText(Path.Combine(Settings.EnvValPath, "RestClientXML", "test.XML"));
        var content = new RestClientServices().RestClientPost(uri, file);

    }
但是,它返回不支持的媒体类型

XML的内容是

<customer> 
    <customerName>test</customerName > 
    <customerStatus>OK</customerStatus > 
</customer>
使用Google Chrome的高级Rest客户端插件,我可以发布并返回我想要的字符串。有什么不对劲吗??我在高级Rest客户端中将内容类型设置为text/xml

返回消息是客户的id。e、 g:2132
之所以发生这种情况,是因为头Accept要指定返回对象的类型。在本例中,是可变内容的值,而不是要发送的内容类型。指定要发送的内容类型:content-type:application/xml

如果POST请求的返回类型是媒体文件,则可以使用“image/png”或“image/jpeg”。您可以使用多个接受头值,如:application/xml、application/xhtml+xml和image/png。 例如,您可以使用调试HTTPs通信—这对于web开发人员来说是一个很好的工具。

im使用


如果可以使用此工具调用任何xml web服务,则可以单击并选择restsharp并将其复制粘贴到代码中

返回值为字符串。例如:2312。你能举个例子吗?我真的不明白你的答案。@Joseph想说的是,'Accept'头表示你期望看到的响应类型。因此,在这种特定情况下,您不需要它,您应该指定请求格式:request.RequestFormat=DataFormat.XmlI将我的原始计划从RestSharp更改为Rest客户机C,我现在可以得到我想要的。如果你们需要答案,就给我留言。