0

eBay の「finditemsAdvanced」API 呼び出しを使用するアプリケーションを開発しました。Windows 7では問題なく動作しますが、XPマシンで試してみると、関数はnullを返します!!!! vs2010とvs 2008を使用してXPでデバッグしようとしましたが、何もありません!!!!

ここで検索クラス:

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;
    }

そしてここにebayの電話があります:

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 マシンで動作しますが、XP で「res」が常に null になる理由がわかりません!!! インストールされているネット フレームワークは 3.5 と 4.0 です。フレームワークの問題ではないと思います。何か案は??

ありがとう!

4

1 に答える 1

0

闇に突き刺す -- Windows ファイアウォール。

デバッグ中にコントロール パネルで無効にしてみてください。違いが生じる場合は、例外を構成して、アプリケーションからの API 呼び出しを許可します。

于 2010-09-12T04:47:17.570 に答える