如何在 Post - C# 中使用 RestClient 传递 Xml 文件?
How to pass Xml file using RestClient in Post - C#?
我正在尝试使用 RestSharp 将 xml 文件传递给 api,但我在 Post 方法中收到的文件为空。
这是我的代码:
public void SendXmlToApi()
{
var client = new RestClient(_uri);
var request = new RestRequest(Method.POST);
request.AddFile("Xml",XmlPath);
request.RequestFormat = DataFormat.Xml;
request.AddHeader("content-type", "application/xml");
var response = client.Execute(request);
bool res = (response.StatusCode == HttpStatusCode.OK);
}
还有我的 Post 函数:
[HttpPost]
[Route("Test")]
public void UpdateResult(XDocument a)
{
}
知道问题出在哪里吗?
我不使用 XML,因此这与您的示例略有不同,但它是将 XML 发布到 [HttpPost] API 端点的可行选项。我原封不动地使用了您的 SendXmlToApi()
示例(只是提供了我自己的 _uri
和 XmpPath
变量)并且成功了(Core 3.1)。
我修改你的接收码为:
[HttpPost]
[Route("test")]
public async Task UpdateResult()
{
string body = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
XDocument xdoc = XDocument.Parse(body);
}
当然,您需要对其进行保护 rails 并进行适当的错误处理和验证,但它应该能让您渡过难关。
我正在尝试使用 RestSharp 将 xml 文件传递给 api,但我在 Post 方法中收到的文件为空。
这是我的代码:
public void SendXmlToApi()
{
var client = new RestClient(_uri);
var request = new RestRequest(Method.POST);
request.AddFile("Xml",XmlPath);
request.RequestFormat = DataFormat.Xml;
request.AddHeader("content-type", "application/xml");
var response = client.Execute(request);
bool res = (response.StatusCode == HttpStatusCode.OK);
}
还有我的 Post 函数:
[HttpPost]
[Route("Test")]
public void UpdateResult(XDocument a)
{
}
知道问题出在哪里吗?
我不使用 XML,因此这与您的示例略有不同,但它是将 XML 发布到 [HttpPost] API 端点的可行选项。我原封不动地使用了您的 SendXmlToApi()
示例(只是提供了我自己的 _uri
和 XmpPath
变量)并且成功了(Core 3.1)。
我修改你的接收码为:
[HttpPost]
[Route("test")]
public async Task UpdateResult()
{
string body = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
XDocument xdoc = XDocument.Parse(body);
}
当然,您需要对其进行保护 rails 并进行适当的错误处理和验证,但它应该能让您渡过难关。