Я разрабатываю приложение C#, которое должно возвращать все доступные категории eBay. К сожалению, я не могу решить проблему с DetailLevel.C# eBay API DetailLevel
DetailLevel является частью запроса и сообщает серверам eBay, как должен выглядеть ответ.
Мне нужно установить DetailLevel на "ReturnAll". Следуя образцам кода, которые доступны в Интернете, я еще не успел.
Вот код, я использую до сих пор:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EbayGetCategories.ebayAPI;
using System.IO;
using System.ServiceModel;
using System.Xml;
using System.Data.OleDb;
namespace EbayGetCategories
{
class Program
{
static void Main(string[] args)
{
int anzahl;
string endpoint = "https://api.ebay.com/wsapi";
string callName = "GetCategories";
string siteId = "0";
string appId = "YOUR_APPID"; // use your app ID
string eBayToken = "YOUR_TOKEN";
string version = "793";
// Build the request URL
string requestURL = endpoint
+ "?callname=" + callName
+ "&siteid=" + siteId
+ "&appid=" + appId
+ "&version=" + version
+ "&routing=default";
// Create the service
eBayAPIInterfaceClient service = new eBayAPIInterfaceClient("eBayAPI", requestURL);
// Assign the request URL to the service locator.
EndpointAddress address = new EndpointAddress(requestURL);
service.Endpoint.Address = address;
// Set credentials
// Make the call to GeteBayOfficialTime
var detailLevel = new DetailLevelCodeType[1];
detailLevel[0] = DetailLevelCodeType.ReturnAll;
GetCategoriesRequestType request = new GetCategoriesRequestType();
request.WarningLevelSpecified = true;
request.WarningLevel = WarningLevelCodeType.High;
request.Version = version;
request.DetailLevel = detailLevel;
CustomSecurityHeaderType cred = new CustomSecurityHeaderType();
cred.eBayAuthToken = eBayToken;
GetCategoriesResponseType response = service.GetCategories(ref cred, request);
Console.WriteLine(response.Ack);
Console.WriteLine(response.CategoryCount);
Console.ReadKey();
OleDbConnection con = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
con.ConnectionString = @"Provider=PervasiveOLEDB;" + @"Data Source=EBAYAPIWARNER;" + @"Location=192.168.0.11;";
cmd.Connection = con;
cmd.CommandText = "INSERT INTO 'ebay_categories' VALUES (2,2,'cat',2,'test')";
try
{
con.Open();
anzahl = cmd.ExecuteNonQuery();
Console.WriteLine(anzahl);
con.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Консоль показывает мне значения «Подтверждено» и «CategoryCount», который является количество категорий, возвращенных eBay.
Для «Ack» я получаю значение «Успех», которое хорошо до сих пор, но CategoryCount всегда показывает мне «0». У меня есть тестовый инструмент SOAP, который дает мне тот же результат, если «DetailLevel» установлен неправильно. Не могли бы вы помочь мне решить эту проблему?