C# 将响应转发到不同URL时,在API管理策略表达式中将响应正文从XML转换为Json
将响应转发到其他URL时,如何将响应正文从XML更改为Json 我专门将响应转发给Azure服务总线 我尝试了许多不同的方法将XML序列化为json,但由于策略表达式中不允许的某些JsonConvert方法的限制,没有成功 不,C# 将响应转发到不同URL时,在API管理策略表达式中将响应正文从XML转换为Json,c#,html,xml,razor,azure-api-management,C#,Html,Xml,Razor,Azure Api Management,将响应转发到其他URL时,如何将响应正文从XML更改为Json 我专门将响应转发给Azure服务总线 我尝试了许多不同的方法将XML序列化为json,但由于策略表达式中不允许的某些JsonConvert方法的限制,没有成功 不,不是解决方案:) https://servicebus.fake 邮递 @{ //一些代码用于构造服务总线请求所需的令牌密钥。 } @{ var guid=guid.NewGuid().ToString(); 返回guid; } 应用程序/json @{ //我必须在这
不是解决方案:)
https://servicebus.fake
邮递
@{
//一些代码用于构造服务总线请求所需的令牌密钥。
}
@{
var guid=guid.NewGuid().ToString();
返回guid;
}
应用程序/json
@{
//我必须在这里补充什么?
}
应用程序/json
解决方案如下:)策略表达式中不允许使用典型的JsonConvert.SerializeXmlNode方法
不管多么好的ol'JsonConvert.SerializeObject都能做到这一点
<send-one-way-request mode="new">
<set-url>http://requestb.in/xje199xj</set-url>
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
string xml = context.Response.Body.As<string>(preserveContent: true);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return JsonConvert.SerializeObject(doc);
}
</set-body>
</send-one-way-request>
http://requestb.in/xje199xj
邮递
应用程序/json
@{
字符串xml=context.Response.Body.As(preserveContent:true);
XmlDocument doc=新的XmlDocument();
doc.LoadXml(xml);
返回JsonConvert.SerializeObject(单据);
}
<send-one-way-request mode="new">
<set-url>http://requestb.in/xje199xj</set-url>
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
string xml = context.Response.Body.As<string>(preserveContent: true);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return JsonConvert.SerializeObject(doc);
}
</set-body>
</send-one-way-request>