[C#] Program do ściągania mangi


(Kenji185) #1

Próbuję napisać program w Visual Studio C# 2010 Express WindowsForms, który będzie ściągać skany rozdziałów z serwisu http://www.mangahere.com. Niestety pojawiły się problemy i sam nie wiem jak znaleźć rozwiązanie. 

 

Problemy: 

  • W czasie pracy okno przestaje reagować 
  • Zainstalowana aplikacja się wysypuje, przy czym w samym IDE wszystko jest OK
    -

(Grzelix) #2

może szkopuł jest właśnie w nazwie: www.mangahere.com

mi zamienia na adres www.mangahere.co (bez m na końcu)


(Edgarus) #3

1. www.mangahere.com przekierowuje na www.mangahere.co. Spróbuj takiego adresu uri

  1. Okno przestaje reagować, bo klasę HttpWebRequest wywołujesz synchronicznie, więc gui czeka na zakończenie wykonania metody GetResponse. Wyjściem z tego jest zastosowanie , metody request.BeginGetResponse(…), działa asynchronicznie i nie zablokuje gui, ale musisz podać delegat do metody wywoływanej po pobraniu odpowiedzi z serwera.

Możesz też wykorzystać obecną metodę:

  • korzystając z klasy BackgroundWorker

  • korzystając z klasy Thread

  • korzystając z klasy Task

Musisz tylko pamiętać, że odwołanie do gui z wątków innych niż główny, musi byc odpowiednio wywołane (metoda Invoke klasy Control).

 

 

Pozdr.

Edgarus


(Kenji185) #4

Jak radziliście zmieniłem adres strony - niestety bez efektu.

 

Drugi problem rozwiązałem z pomocą BackgroundWorker, dzięki za radę.


(Grzelix) #5

wrzuć może źródła na jakiegoś fileshare’a i  podaj przykład użycia - jakie dane wpisujesz.

 

Ja spróbowałem odtworzyć na podstawie tej partial class i u mnie działało w porządku np dla manga Gokko (czy jakoś tak).

Natomiast aplikacja nie jest “bullet proof” - jeśli nazwa mangi ma znaki specjalne to nie można utworzyć folderu na dysku.


(Kenji185) #6

Link do programu:

https://drive.google.com/file/d/0BxundNbHPyVCQkl6dkJydWJBXzA/edit?usp=sharing

 

Przykład użycia “area d inou ryouiki”, podczas debugowania wszystko jest ok, ale skompilowany program na starcie się wysypuje. 


(Grzelix) #7

Niestety nie udało mi się zreprodukować błędu. Próbowałem na dwóch różnych komputerach z różnymi systemami operacyjnymi, z poziomu VS, też po instalacji w systemie ClickOnce i za każdym razem u mnie działało poprawnie. 


(Macasz12) #8

Potwierdzam wersję kolegi, u mnie też wszystko działa :wink: