当我使用浏览器访问页面时,它是xml但是当我请求url时它是json。 mvc 4 api中是否存在某些内容,它只通过程序将json输出到请求中,或者我可以恢复xml。注意:这发生在桌面应用程序和网页中,所以它必须是某种设置,这是桌面给我的错误:Data at the root level is invalid. Line 1, position 1.
是的我正在加载文档,我检查了通过使用json代替它,它回来了。
private void Plus_Click(object sender, EventArgs e)
{
string FValue = id.Text;
string SValue = id2.Text;
string ending;
string url = "http://localhost:56254/api/add?id=" + FValue + "&id2=" + SValue;
XmlDocument xdoc = new XmlDocument();
xdoc.Load(url);
XmlNode xNode = xdoc.SelectSingleNode("End");
ending = xNode.InnerText;
Answer.Text = ending;
}
这是我的桌面应用程序代码。 我获取xml的代码就在这里:
namespace Calculator.Controllers
{
using Calculator.Models;
public class AddController : ApiController
{
public Calcs GetAddition(int id, int id2)
{
double end = id + id2;
Calcs[] calcs = new Calcs[] { new Calcs { FValue = id, SValue = id2, End = end } };
return calcs[0];
}
}
}
这是Calcs:
namespace Calculator.Models
{
public class Calcs
{
public int FValue { get; set; }
public int SValue { get; set; }
public double End { get; set; }
}
}
以下是浏览器提供的内容:
<Calcs xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Calculator.Models">
<End>60</End>
<FValue>55</FValue>
<SValue>5</SValue>
</Calcs>
答案 0 :(得分:2)
您需要在请求中设置接受标头类型。但是,由于您忽略了提供足够的信息来了解您如何请求数据,因此我可以帮助您。\
编辑:
这里的问题是XmlDocument.Load没有发送一个包含xml的接受标头,这个格式是真正的愚蠢,人们会认为它会。)
您可能必须使用WebRequest来检索文档,指定一个表示“application / xml; q = 0.9”的接受标题。
您可以在此处找到解决方案:C# Won't Load A Certain XML, But Works in Browser