gpt4 book ai didi

c# - 如何在我的请求 XML 中包含前导码?

转载 作者:数据小太阳 更新时间:2023-10-29 02:30:50 26 4
gpt4 key购买 nike

我正在使用 ObjectContent 构建 XML 请求,如下所示:

private HttpRequestMessage CreateRequest<T>(T content, HttpMethod method) where T : class
{
// create http message request
var request = CreateRequest(method);

// set contents of the HTTP message
var xmlFormatter = new XmlMediaTypeFormatter
{
Indent = true,
UseXmlSerializer = true
};

var objectContent = new ObjectContent<T>(content, xmlFormatter);
request.Content = objectContent;

// return HttpRequestMessage
return request;
}

这很好用!但是,输出不包括 XML 序言,例如

<?xml version="1.0" encoding="UTF-8"?>

我如何鼓励 XmlSerializer 包含该行?

最佳答案

我不知道如何用 ObjectContent 做到这一点,所以我先将它序列化,然后通过 StreamContent 将它传递给请求:

private HttpRequestMessage CreateRequest<T>(T content, HttpMethod method) where T : class
{
var request = CreateRequest(method);
var encoding = Encoding.UTF8;
var xmlWriterSettings = new XmlWriterSettings { Indent = true, Encoding = encoding };

// StringWriterWithEncoding courtesy of http://stackoverflow.com/a/9459212/29
using (var stringWriter = new StringWriterWithEncoding(encoding))
using (var xmlWriter = XmlWriter.Create(stringWriter, xmlWriterSettings))
{
var xmlSerializer = new XmlSerializer(typeof(T));
xmlSerializer.Serialize(xmlWriter, content);
request.Content = new StringContent(stringWriter.ToString(), encoding);
}

return request;
}

关于c# - 如何在我的请求 XML 中包含前导码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com