2016-11-10 79 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