2016-11-10 98 views
0

检查了很多不同的选项后,我认为是时候向专家提问:)。Ebay API GetCategorySpecifics错误500

我试图让使用GetCategorySpecifics调用一个eBay API服务的电话,但我不断收到以下错误信息:

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

我将网址更改为https://api.ebay.com/ws/api.dll问题已解决。因此,而不是:

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

这是

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

前者将与服务findCompletedItemsfindItemsByKeywords等工作。

对于一些其他的URL列表以及何时使用它们,请参阅以下链接:

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