【问题标题】:Returning auctions ending later than 10 days10 天后结束的退货拍卖
【发布时间】:2011-08-03 15:43:21
【问题描述】:

我的 api/xml 可以正常使用从现在到 10 天结束的返回拍卖,但不适用于 10 天后结束的列表:

http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByCategory&SERVICE-VERSION=1.11.0&SECURITY-APPNAME=AlexGo:::::::hiddin::::821eee8&RESPONSE-DATA-FORMAT=XML&categoryId=307&paginationInput.entriesPerPage=100&paginationInput.pageNumber=1&outputSelector=CategoryHistogram&sortOrder=EndTime&itemFilter(0).name=MinPrice&itemFilter(0).value=.01&itemFilter(1).name=MaxPrice&itemFilter(1).value=1000&itemFilter(2).name=ListingType&itemFilter(2).value=AuctionWithBIN&itemFilter(3).name=LocatedIn&itemFilter(3).value=US&itemFilter(4).name=EndTimeFrom&itemFilter(4).value=2011-08-24T10:23:00.000Z&itemFilter(5).name=EndTimeTo&itemFilter(5).value=2011-08-31T10:23:00.000Z

这是我下载结果的方式:

public string DownLoad(string url)
{
    // used to build entire input
    StringBuilder sb = new StringBuilder();

    // used on each read operation
    byte[] buf = new byte[32768];
    try
    {
        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create(url);

        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();

        // we will read data via the response stream
        Stream resStream = response.GetResponseStream();
        string tempString = null;
        int count = 0;

        do
        {
            // fill the buffer with data
            count = resStream.Read(buf, 0, buf.Length);

            // make sure we read some data
            if (count != 0)
            {
                // translate from bytes to ASCII text
                tempString = Encoding.ASCII.GetString(buf, 0, count);

                // continue building the string
                sb.Append(tempString);
            }
        }
        while (count > 0); // any more data to read?
    }
    catch (Exception)
    {

        timer1.Enabled = false;
        progressBar1.Visible = false;
        msg.ForeColor = Color.Red;
        msg.Text = "Please try after some time !!!";
        msg.Visible = true;
    }
    // print out page source
    // MessageBox.Show(sb.ToString());
    return sb.ToString();
}

【问题讨论】:

    标签: c# xml ebay-api


    【解决方案1】:

    我不太确定你的问题是什么,我尝试了相同的 API,时差小于 10 天和大于 10 天。

    不到 10 天

    http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByCategory
    &SERVICE-VERSION=1.11.0
    &SECURITY-APPNAME=ENTER-APP-ID-HERE
    &RESPONSE-DATA-FORMAT=XML
    &categoryId=307
    &paginationInput.entriesPerPage=100
    &paginationInput.pageNumber=1
    &outputSelector=CategoryHistogram&sortOrder=EndTime&itemFilter%280%29.name=MinPrice&itemFilter%280%29.value=0.01&itemFilter%281%29.name=MaxPrice&itemFilter%281%29.value=10000
    &itemFilter%282%29.name=ListingType&itemFilter%282%29.value=AuctionWithBIN&itemFilter%283%29.name=LocatedIn&itemFilter%283%29.value=US
    &itemFilter%284%29.name=EndTimeFrom&itemFilter%284%29.value=2011-08-06T07:52:48.000Z
    &itemFilter%285%29.name=EndTimeTo&itemFilter%285%29.value=2011-08-10T07:52:48.000Z
    

    超过 10 天

    http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByCategory
    &SERVICE-VERSION=1.11.0
    &SECURITY-APPNAME=ENTER-APP-ID-HERE
    &RESPONSE-DATA-FORMAT=XML
    &categoryId=307
    &paginationInput.entriesPerPage=100
    &paginationInput.pageNumber=1
    &outputSelector=CategoryHistogram&sortOrder=EndTime&itemFilter%280%29.name=MinPrice&itemFilter%280%29.value=0.01&itemFilter%281%29.name=MaxPrice&itemFilter%281%29.value=10000
    &itemFilter%282%29.name=ListingType&itemFilter%282%29.value=AuctionWithBIN&itemFilter%283%29.name=LocatedIn&itemFilter%283%29.value=US
    &itemFilter%284%29.name=EndTimeFrom&itemFilter%284%29.value=2011-08-06T07:52:48.000Z
    &itemFilter%285%29.name=EndTimeTo&itemFilter%285%29.value=2011-08-30T07:52:48.000Z
    

    试试看,应该可以的。

    PS:对我来说。你的两个陈述都不起作用,我明白了:

    <findItemsByCategoryResponse><ack>Failure</ack><errorMessage><error><errorId>12</errorId><domain>Marketplace</domain><severity>Error</severity><category>Request</category><message>Invalid date/time value.</message><subdomain>Search</subdomain><parameter>END_TIME_FROM</parameter></error><error><errorId>12</errorId><domain>Marketplace</domain><severity>Error</severity><category>Request</category><message>Invalid date/time value.</message><subdomain>Search</subdomain><parameter>END_TIME_TO</parameter></error></errorMessage><version>1.11.0</version><timestamp>2011-08-06T00:28:25.501Z</timestamp></findItemsByCategoryResponse>
    

    更新:

    eBay 不允许任何拍卖持续超过 10 天。因此,如果您尝试从 8 月 24 日到 8 月 30 日(我们的当前日期:8/08)寻找拍卖,您将找不到任何东西。因为如果今天列出拍卖,卖家最多可以在 08/18 之前将其出售。

    将 AuctionWithBIN 替换为 StoreInventory 以获取列表超过 10 天的商店的结果。

    【讨论】:

    • 过去 10 天仍未返回结果
    • 你的意思是,你复制了我在回答中与你分享的链接,只是更新了 appId,但它不起作用?
    • 在进入Java之前,请您试试这个: 1.复制我分享的第二个URL, 2.更改appId 3.将其粘贴到浏览器的地址栏中并输入。查看是否收到 XML 响应。
    • 谢谢你,我按照你说的做了,10 天后返回 0 个结果
    【解决方案2】:

    根据eBay DevZone Finding API Call Reference ItemFilterType documentation for EndTimeTo,EndTimeTo 没有规定/公布的限制:

    EndTimeTo 将结果限制为在指定时间或之前结束的项目。

    指定未来的时间。

    允许值(日期时间):

    指定格林威治标准时间。

    您能否发布创建此 URL 的 C# 代码?


    您的第一个 URL 参数是:11 年、8 月、10 日

    EndTimeTo&itemFilter(5).value=11-08-10T07:52:48.000Z
    

    您的第二个 URL 参数是:Year 11, Month 20, Date 10

    EndTimeTo&itemFilter(5).value=11-20-10T07:52:48.000Z
    

    【讨论】:

    • 感谢您的更正,我在 stackoverflow 中输入时出错了,但在我的程序中是正确的
    • @Random downvoter;关心解释你为什么投反对票,并且没有解释为什么这个答案对 OP 没有帮助?这是 eBay 开发人员文档的链接,以获取 OP 遇到问题的确切参数!如果有任何方法可以确定时间范围,那将是信息存在的地方。
    • @p.camb 已经更新了问题,请您看看,再次感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2020-04-29
    相关资源
    最近更新 更多