Это уточненный и конкретный вопрос, который я задал на прошлой неделе о проекте, над которым я работаю, по использованию веб-службы http://www.upcdatabase.com через xml-rpc .net. Я работаю на C #. Для запроса требуется именованный метод («поиск»), а также 2 именованных параметра («rpc_key») и («upc»), оба типа являются укусами. Моя первоначальная мысль заключалась в том, чтобы создать такой интерфейс:
[XmlRpcUrl("http://www.upcdatabase.com/xmlrpc")]
public interface UPChelp : IXmlRpcProxy
[XmlRpcMethod("lookup")]
upcLookupValues lookupUPC(string rpc_key, string upc);
upcLookupValues is a struct that is returned defined as:
public struct upcLookupValues
{
public string upc;
public int pendingUpdates;
public string status;
public string ean;
public string issureCountryCode;
public bool found;
public string description;
public string message;
public string size;
public string issureCountry;
public string noCacheAfterUTC;
public string lastModifiedUTC;
}
Генерация прокси, с которой я работал, это
UPChelp upcObj = XmlRpcProxyGen.Create<UPChelp>();
upcLookupValues myLookup = upcObj.lookupUPC("000000000000000000000000000000000000000000”, "639382000393");
Я получаю ответ с неверными параметрами .. Итак, читая часто задаваемые вопросы по xml-rpc, я наткнулся на:
«2.20 Как вызвать метод XML-RPC с переменным количеством параметров? Ключевое слово params может использоваться для вызова метода XML-RPC, который принимает переменное количество параметров. Например, если метод XML-RPC принимает переменное количество целочисленных параметров, его можно определить следующим образом: [XmlRpcUrl ("http://www.cookcomputing.com/notimpl.rem")] IParams общедоступного интерфейса: IXmlRpcProxy { [XmlRpcMethod]
int UseNumbers (params int [] numbers); } И называется так: IFoo proxy = (IFoo) XmlRpcProxyGen.Create (typeof (IFoo)); proxy.SendMultipleParameters (1); proxy.SendMultipleParameters (1, 2, 3); ”В качестве альтернативы параметры в этом примере могут быть предоставлены как массив типа int []: int [] parameters = new int [] {1, 2, 3}; proxy.SendMultipleParameters (параметры); "
Моя проблема в том, что я не понимаю, как применить эту концепцию к моему проекту (я новичок), я попробовал upcLookupValues [] parameters = new string [] {"rpc_key", "upc"}; Но я не могу неявно преобразовать строку [] в readUPC.upcLookupvalues []. Я также не понимаю, как определить новый прокси для отправки. Скрестив пальцы, этот пост имеет смысл. Я уверен, что вы, ребята, C # xml-rpc, прямо сейчас смеетесь.