现在已经被困在这里很久了。以为有人可能会把我放在正确的方向。我创建了一个ASP.NET Web API 2应用程序。有一个功能可以归还所有船只。现在我想在我的控制器功能中接收一个xml。我怎样才能做到这一点。下面是我的HttpClient调用代码,它给出了错误的请求错误。有人可以指导我如何将xml传递给Web api函数。
路由
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
控制器操作
public IHttpActionResult GetSummaryFunction(string id)
{
return Ok(id);
}
客户代码
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:53633/");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/xml"));
string testXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><SummaryRQ xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/Test.WebAPI.Controllers\" Version=\"1.00\" Target=\"Test\"><POS><Source Login=\"test\" Password=\"test\"></Source></POS></SummaryRQ>";
var url = "api/summaryfunction/" + testXml;
HttpResponseMessage response = client.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
}
else
{
}
答案 0 :(得分:0)
至少您需要将testXml
字符串传递给Uri.EscapeDataString
function。
如果你的Xml太大,你可能会遇到一些问题。太大有多大程度上取决于客户端和服务器之间存在的基础架构。