2016-11-10 3 views
0

После проверки многих разных вариантов, я думаю, пришло время задать вопросы экспертам :).Ebay API GetCategorySpecifics Error 500

Я пытаюсь сделать API Service вызова eBay с помощью GetCategorySpecifics позвонить, но я получаю следующее сообщение об ошибке:

The remote server returned an error: (500) Internal Server Error. 

Вот мой код

//Create the XML File 
public string CreateEbayXMLFile() 
{ 
     string _ebayFeatureNS = "urn:ebay:apis:eBLBaseComponents"; 
     string resultXml = ""; 
     XDocument doc = new XDocument 
     (
      new XDeclaration("1.0", "utf-8", ""), 
      new XElement(_ebayFeatureNS + "GetCategorySpecifics", 
      new XElement(_ebayFeatureNS + "CategorySpecific", true), 
      new XElement(_ebayFeatureNS + "CategoryID", "CategoryID"), 
      new XElement(_ebayFeatureNS + "FeatureID", "ItemSpecificsEnabled"), 
      new XElement(_ebayFeatureNS + "ViewAllNodes", true), 
      new XElement(_ebayFeatureNS + "DetailLevel", "ReturnAll"), 
      new XElement(_ebayFeatureNS + "CategorySpecificsFileInfo", "true"), 
      new XElement(_ebayFeatureNS + "ExcludeRelationships", "false"), 
      new XElement(_ebayFeatureNS + "IncludeConfidence", "true"), 
      new XElement(_ebayFeatureNS + "MaxNames"), 
      new XElement(_ebayFeatureNS + "OutputSelector", "UnitPriceInfo") 
      ) 
     ); 
    resultXml = doc.ToString(); 
    return resultXml; 
} 

    //Make the Service Call 
    public XmlDocument MakeTheServiceCall() 
    { 
     string localEbayXml = CreateEbayXMLFile(); 
     string _ebaySvcUrl = http://svcs.ebay.com/services/search/FindingService/v1; 

     //Authentication and service call 
     byte[] Xml_bytes = Encoding.UTF8.GetBytes(localEbayReqXml); 
       HttpWebRequest req = (HttpWebRequest)System.Net.WebRequest.Create(_ebaySvcUrl) as HttpWebRequest; 
       req.Headers.Add("X-EBAY-SOA-SECURITY-APPNAME", myAppId); 
       req.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "GetCategorySpecifics"); 
       req.Headers.Add("X-EBAY-SOA-SERVICE-VERSION", "1.0.0"); 
       req.Headers.Add("X-EBAY-SOA-GLOBAL-ID", "EBAY-US"); 
       req.Method = "POST"; 
       req.ContentLength = Xml_bytes.Length; 
       req.ContentType = "text/xml"; 

       using (var requestStream = req.GetRequestStream()) 
       { 
        requestStream.Write(Xml_bytes, 0, Xml_bytes.Length); 
       } 

       XmlDocument xmlDoc = new XmlDocument(); 

       using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) 
       { 
        { 
         xmlDoc.Load(response.GetResponseStream()); 
        } 
       } 

    } 

я получил ошибку сообщение в объявлении HttpWebResponse. Он никогда не достигает xmlDoc.Load (response.GetResponseStream());

Пожалуйста, помогите!

ответ

0

Я сменил URL-адрес на https://api.ebay.com/ws/api.dll, и проблема решена. Таким образом, вместо:

string _ebaySvcUrl = http://svcs.ebay.com/services/search/FindingService/v1; 

Это

string _ebaySvcUrl = http://svcs.ebay.com/MerchandisingService 

Бывший один будет работать с сервисами findCompletedItems, findItemsByKeywords и так далее.

Для получения списка некоторых других URL и когда использовать их, смотрите ссылку ниже:

https://ebaydts.com/eBayKBDetails?KBid=429