Это уточненный и сфокусированный вопрос, который я задал на прошлой неделе о проекте, над которым я работаю, чтобы использовать веб-сервис http://www.upcdatabase.com через xml-rpc .net.Я работаю в C #.Запрос требует именованный метод («lookup»), а также 2 именованных параметра («rpc_key») и («upc»), оба типа являются sting.Сначала я хотел создать интерфейс, подобный следующему:
[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 [])числа);} И называется так: 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 (parameters); "
Моя проблема в том, что я не понимаю, как применить эту концепцию к моему проекту (я новичок), я попытался upcLookupValues [] parameters = new string [] {"rpc_key", "upc"}; Но я получаюя не могу неявно преобразовать строку [] в readUPC.upcLookupvalues []. Я также не понимаю, как определить новый прокси для отправки. Мои пальцы скрещены, этот пост имеет смысл. Я уверен, что вы, ребята из C # xml-rpc, смеетесь правильноТеперь.