eBay-Finding-API .NET SDK 'findItemsAdvanced' gibt null Reaktion
Ich versuche, verwenden Sie die eBay-Finding-API zu senden, erweiterte Suche, Anfrage und senden Sie die Ergebnisse. Ich habe meinen code unten.
Aus irgendeinem Grund, wenn ich die folgende Zeile:
FindItemsAdvancedResponse response = service.findItemsAdvanced(request);
das Objekt als "Reaktion" kommt zurück als null.
Ich bin mir nicht sicher, wohin ich gehe falsch und es wird keine exception geworfen wird, die aus dem Aufruf service.findItemsAdvanced()
Wenn Sie könnte nehmen Sie einen Blick-und Rat-ich wäre sehr dankbar dafür.
Hier ist mein Programm.cs, bis das problem
Programm.cs
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using EbayParser.com.ebay.developer;
using System.Net;
namespace EbayParser
{
class Program
{
static void Main(string[] args)
{
try
{
//Creating an object to the BestMatchService class
CustomFindingService service = new CustomFindingService();
service.Url = "http://svcs.sandbox.ebay.com/services/search/FindingService/v1";
com.ebay.developer.FindItemsAdvancedRequest request = new EbayParser.com.ebay.developer.FindItemsAdvancedRequest();
//Create Filter Objects
com.ebay.developer.ItemFilter filterEndTimeFrom = new EbayParser.com.ebay.developer.ItemFilter();
com.ebay.developer.ItemFilter filterEndTimeTo = new EbayParser.com.ebay.developer.ItemFilter();
com.ebay.developer.ItemFilter filterCatID = new EbayParser.com.ebay.developer.ItemFilter();
//Set Values for each filter
filterEndTimeFrom.name = EbayParser.com.ebay.developer.ItemFilterType.EndTimeFrom;
filterEndTimeFrom.value = new string[] { "" };
filterEndTimeTo.name = EbayParser.com.ebay.developer.ItemFilterType.EndTimeTo;
filterEndTimeTo.value = new string[] { "" };
filterCatID.name = EbayParser.com.ebay.developer.ItemFilterType.EndTimeFrom;
filterCatID.value = new string[] { "" };
//Create the filter array
com.ebay.developer.ItemFilter[] itemFilters = new EbayParser.com.ebay.developer.ItemFilter[3];
//Add Filters to the array
itemFilters[0] = filterCatID;
itemFilters[1] = filterEndTimeFrom;
itemFilters[2] = filterEndTimeTo;
request.itemFilter = itemFilters;
request.keywords = "ipod";
//Creating response object
FindItemsAdvancedResponse response = service.findItemsAdvanced(request);
und hier ist der code für die Klasse "CustomFindingService.cs"
CustomFindingService.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using EbayParser.com.ebay.developer;
namespace EbayParser
{
class CustomFindingService : FindingService
{
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
try
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(uri);
request.Headers.Add("X-EBAY-SOA-SECURITY-APPNAME", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "findItemsByKeywords");
request.Headers.Add("X-EBAY-SOA-SERVICE-NAME", "FindingService");
request.Headers.Add("X-EBAY-SOA-MESSAGE-PROTOCOL", "SOAP11");
request.Headers.Add("X-EBAY-SOA-SERVICE-VERSION", "1.0.0");
request.Headers.Add("X-EBAY-SOA-GLOBAL-ID", "EBAY-US");
return request;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
- Ich habe ausgeblendet my App-ID im obigen code.
- Haben Sie Fiddler Blick auf die request-und response?
- Ich habe nicht versucht noch, aber wird. Wenn ich die "service" - Objekt zu EbayFindingService anstelle der benutzerdefinierten Klasse als erbt EbayFindingService bekomme ich eine Fehlermeldung, die sagt "SOA header fehlt", Was ist der richtige Weg, um den header für eine FindItemsAdvancedRequest Artikel?
- Auch wenn ich am Ende nicht mit der genauen Antwort, wenn jemand könnte sogar mich an, oder schreiben Sie ein einfaches Beispiel für die Verwendung der Ebay-SDK, das wäre toll. Alle Beispiele, die ich bisher gefunden habe, nur am Ende werfen Fehler oder sind veraltet und funktionieren nicht mehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte genau das gleiche problem, wenn ich ging von der Suche durch Schlüsselwörter mit der erweiterten Methode. Ich verbrachte eine Weile meinen Kopf kratzen mich, aber es stellte sich heraus, haben eine einfache Lösung:
Ihren Kopf
X-EBAY-SOA-OPERATION-NAME
liestfindItemsByKeywords
. Ändern Sie es zufindItemsAdvanced
sollte den trick tun.Lassen Sie alle Filter leer in der filter-array erhalten Sie die SOA-Operation-Header fehlen Ausnahme, ob oder nicht Sie haben enthalten die Kopfzeilen korrekt.
Sollten Sie überprüfen, dass die Filter nicht null ist, bevor Sie Sie anwenden, um Ihre Anfrage.