2011-01-14 11 views
15

W moim miejscu pracy mamy pełen temperamentu serwer proxy, który często sprawia, że ​​okno pakietów nuget jest bezużyteczne (to samo dotyczy linii poleceń nuget). Zacząłem kopiować najczęściej używane pakiety do lokalnego serwera lustrzanego w udziale sieciowym, ale ręczne robienie tego stało się żmudne. Eksperymentowałem z użyciem programu powershell, aby pobrać pakiety automatycznie, ale nie można uzyskać odata uri, aby pokazać więcej niż kilka pakietów. Na przykład uruchomienie następującego zapytania:Odzwierciedlając oficjalne repozytorium pakietów nuget

$feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages?$filter=startswith(Title,'O') eq true&$top=100") 

Powinien zwrócić 100 najlepszych pakietów, których tytuł zaczyna się od "O", ale żadne pakiety nie są zwracane. Dziwnie to działa dobrze z nazwami pakietów, które znajdują się na domyślnej liście pakietów zwróconych przez uderzenie http://feed.nuget.org/ctp2/odata/v1/Packages. Jestem zgadywanie, że jest jakiś rodzaj stronicowania, gdzie jestem tylko kwerendy na pierwszej stronie. Granie z parametrami nie wydaje się być w stanie przejść do następnej strony ...

Czy ktoś próbował to zrobić? Czy ktoś inny zauważył limity czasu/złe żądania za pomocą nugetu?

Odpowiedz

2

Musisz zachować ostrożność, używając ciągu w podwójnych cudzysłowach. Najpierw spróbuj najpierw ocenić adres URL lub tylko część:

PS> "?$filter=startswith(Title,'O') eq true&$top=100" 
?=startswith(Title,'O') eq true&=100 

PS> "?`$filter=startswith(Title,'O') eq true&`$top=100" 
?$filter=startswith(Title,'O') eq true&$top=100 

Ucieknij od znaku dolara za pomocą numeru.

Potem próbowałem przesłać zapytanie do strony z (miejmy nadzieję) poprawnym adresem, ale nie zwrócono żadnego wyniku wyniku. Więc - wciąż nie ma szczęścia i może być coś nie tak z usługą.

3

Moja sugestia jest użycie New-ODataServiceProxy lub nawet Doug Finke na PSOdata project

Wystarczy funkcji proxy można to zrobić:

New-ODataServiceProxy http://packages.nuget.org/v1/FeedService.svc/ NuGet 
# Chain up calls to AddQueryOption (please excuse my line wrapping): 
$NuGet.Packages.AddQueryOption('$filter',"startswith(Title,'O') eq true" 
      ).AddQueryOption('$top','3') | 
Format-Table Id, Version, Authors, Description -Wrap -Auto 
Powiązane problemy