0

我开发了一个使用 ebay 的“finditemsAdvanced”api 调用的应用程序。它在 Windows 7 上运行没有问题,但是当我在 xp 机器上尝试它时,函数返回 null !!!我试图在xp上调试它,用vs2010和vs 2008但什么都没有!!!!

这里是搜索类:

public SearchResult Search(Job searchedjob)
{
    try
    {
        EbayFind service = new EbayFind();
        service.Url = "http://svcs.ebay.com/services/search/FindingService/v1";

        FindItemsAdvancedRequest findrequest = new FindItemsAdvancedRequest();

        ItemFilter[] filtro = new ItemFilter[1];
        int filter = 0;

        //Tempo rimanente
        filtro[filter] = new ItemFilter();
        filtro[filter].name = ItemFilterType.EndTimeTo;
        filtro[filter].value = new string[] 
        {
           searchedjob.TimeLeft.ToString("yyyy-MM-ddTHH:mm:ss.000Z") 
        };
        filter++;

        findrequest.keywords = "canon";
        findrequest.itemFilter = filtro;
        findrequest.descriptionSearch = false;

        // Setting the pagination
        PaginationInput pagination = new PaginationInput();
        pagination.entriesPerPageSpecified = true;
        pagination.entriesPerPage = 25;
        pagination.pageNumberSpecified = true;
        pagination.pageNumber = 1;
        findrequest.paginationInput = pagination;

        findrequest.paginationInput = pagination;

        // Creating an object to the BestMatchService class

        FindItemsAdvancedResponse resp = service.findItemsAdvanced(findrequest);
        SearchResult res = resp.searchResult;

        return res;
    }

这里是易趣电话:

class EbayFind : FindingService
{
    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(uri);
            request.Headers.Add("X-EBAY-SOA-SECURITY-APPNAME", "myappid");
            request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "findItemsAdvanced");
            request.Headers.Add("X-EBAY-SOA-SERVICE-NAME", "FindingService");
            request.Headers.Add("X-EBAY-SOA-MESSAGE-PROTOCOL", "SOAP11");
            request.Headers.Add("X-EBAY-SOA-SERVICE-VERSION", "1.0.0");
            request.Headers.Add("X-EBAY-SOA-GLOBAL-ID", "EBAY-US");
            return request;
        }

        catch (Exception ex)
        {
            throw ex;
        }
    }
}

此代码适用于 w7 机器,我不明白为什么“res”在 xp 上总是为空!!!安装的网络框架是 3.5 和 4.0,我认为这不是框架问题。有任何想法吗??

谢谢!

4

1 回答 1

0

暗中刺伤——Windows 防火墙。

调试时尝试在控制面板中禁用它。如果它有所不同,请配置一个异常以允许您的应用程序的 api 调用通过。

于 2010-09-12T04:47:17.570 回答