0

Charles Cook 的 C# xml-rpc.net 库中的 .NET MVC 4.5

试图用 xml-rpc 攻击第 3 方供应商。我需要向他们发送一些格式如下的 xml:

<?xml version='1.0' encoding='iso-8859-1'?> 
<QuoteRequest> 
    <User_ID>XXXXXXXX</User_ID> 
    <State>AL</State> 
    <Zip_Code>35201</Zip_Code> 
    <Applicant_Gender>Male</Applicant_Gender> 
    <Applicant_Age>30</Applicant_Age> 
    <Plan_ID>10</Plan_ID>
</QuoteRequest>

到目前为止我的努力:

var quoteRequest = new XmlRpcStruct();
var quoteRequestSpecs = new XmlRpcStruct();
quoteRequestSpecs.Add("Plan_ID", "10");
//add in other bits of xml here...user id, state, zip code, etc

quoteRequest.Add("QuoteRequest", quoteRequestSpecs);

var proxy = XmlRpcProxyGen.Create<IQuoteRequest>();
proxy.Url = "http://myfakeurl.com"
var response = proxy.QuoteRequest(quoteRequest);

IQuoteRequest 如下所示:

public interface IQuoteRequest : IXmlRpcProxy
{
    [XmlRpcMethod("QuoteRequest")]
    string QuoteRequest(XmlRpcStruct request);
}

我的服务很好,但我得到的只是以下内容:

"&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;&lt;QuoteResult&gt;&lt;Error&gt;&lt;Message&gt;Incorrect Plan ID.#&lt;/Message&gt;&lt;/Error&gt;&lt;/QuoteResult&gt;"

重要部分:“不正确的计划 ID”。

是的,我知道我使用的是正确的计划 ID。

如果我根本没有附加任何信息并且只是通过一个空的 XmlRpcStruct 发送,我会收到相同的消息,所以我认为我的数据没有被发送。

4

1 回答 1

0

最终只需要传递一个字符串,而不是实际的 xml。

var quoteRequest = "<QuoteRequest><User_ID>XXXXXXXXX</User_ID><State>TX</State><Zip_Code>75251</Zip_Code><Applicant_Gender>Male</Applicant_Gender><Plan_ID>10</Plan_ID></QuoteRequest>";

var proxy = XmlRpcProxyGen.Create<IQuoteRequest>();
proxy.Url = "http://myfakeurl.com"
var response = proxy.QuoteRequest(quoteRequest);

IQuoteRequest 看起来像:

public interface IQuoteRequest : IXmlRpcProxy
{
    [XmlRpcMethod("QuoteRequest")]
    string QuoteRequest(string request);
}
于 2014-04-10T19:51:40.123 回答