Не удается прочитать ответ из XML-RPC - PullRequest
0 голосов
/ 01 февраля 2011

В настоящее время я использую XML-RPC из http://www.xml -rpc.net /

Я видел сотни примеров получения одного результата от службы и его сохранения вstruct, но мне нужно хранить значения "N".

Я объясню это лучше.У меня есть исходный файл, содержащий, в основном это:

public struct estructura
{
    public string apiKey;
}

[XmlRpcUrl("http://example.net/api/xmlrpc/thisfile.php")]

public interface IStateName : IXmlRpcProxy
{
    [XmlRpcMethod("myserver.search.getSomething")]
    XmlRpcStruct busqueda(estructura co);
}

У меня также есть один файл aspx с этим на PageLoad

protected void Page_Load(object sender, EventArgs e)
{
    IStateName proxy = XmlRpcProxyGen.Create<IStateName>();

    try
    {
        estructura uno;
        uno.apiKey = "My_API_Key_Value"; // Hidden for security reasons
        XmlRpcStruct a = proxy.busqueda(uno);               
    }
    catch (Exception ex)
    {
        Response.Write("Some error...");
    }

}

Это на самом деле работает, я использую Fiddler для чтенияHTTP-запросы / ответы, и все в порядке, служба возвращает это ...

HTTP/1.1 200 OK
Date: Tue, 01 Feb 2011 16:06:51 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Pragma: no-cache
Connection: close
XMLRPC-server: SimpleXMLRPC/0.7
Content-Length: 2177
Content-Type: text/xml; charset=UTF-8


<methodResponse>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>ATEId</name>

                        <value>
                        <string>6</string>
                        </value>
                    </member>

                    <member>
                    <name>ATEDescripcionEsp</name>

                    <value>
                    <string>* No Especificado *</string>
                    </value>
                    </member>
                </struct>
            </value>
        </param>

        <param>
            <value>
                <struct>
                    <member>
                        <name>ATEId</name>

                        <value>
                        <string>10</string>
                        </value>
                    </member>

                    <member>
                        <name>ATEDescripcionEsp</name>

                        <value>
                        <string>Asociaciones de empresas</string>
                        </value>
                    </member>
                </struct>
            </value>
        </param>

        <param>
        [The rest of params...]
        </param>
    </params>
</methodResponse>

Моя проблема заключается в том, что "var a" хранит ТОЛЬКО первый "параметр", я имею в виду, я отладил код и "a «содержит только эти записи

Name                        Value
["ATEDescripcionEsp"]   "* No Especificado *"   
["ATEId"]                   "6" 

Поэтому я хочу сохранить только ВСЕ результаты (следующий результат должен быть ATEId = 10 и ATEDescripcionEsp =" Asociaciones de Empresas ") из ответа сервера или, если я могу 'Для этого мне нужно сохранить обычный XML-код из ответа, а затем проанализировать его вручную.

1 Ответ

0 голосов
/ 01 февраля 2011

Похоже, вы возвращаете набор значений. Возможно, вы захотите изменить схему структуры для принятия массива или сделать структуру массивом значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...