在检查了许多不同的选项后,我认为是时候向专家提问:)。
我正在尝试使用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 :(得分: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
前者可以使用服务findCompletedItems
,findItemsByKeywords
等等。
有关其他网址的列表以及何时使用它们,请参阅以下链接: