java.io.IOException: Невалиден Http отговор

Преди да кажете, че има въпроси като този, бих искал да отбележа, че прегледах повечето от тях без никакъв късмет. Освен това съм тук за първи път, така че бъдете внимателни.

В момента имам това раздразнение в текущата си програма:

По принцип тази част от програмата ми използва търсачка за намиране на торент файлове.

public static ArrayList<String> search(String args) throws IOException {        
    args = args.replace(":", "");

    ArrayList<String> list = new ArrayList<String>();
    URL url = new URL("http://pirateproxy.net/search/" + args + "/");
    URLConnection con = url.openConnection();
    BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); <---- THIS
}

public static void main(String[] args) {
    try {
        search("The Hobbit: The Desolation of Smaug");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

ГРЕШКАТА:

java.io.IOException: Invalid Http response
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at service.ServiceDownloader.search(ServiceDownloader.java:20)
at service.ServiceDownloader.main(ServiceDownloader.java:45)

Забавната част е, че се обърка САМО за този филм ("Хобитът: Пущинакът на Смог"), всеки друг филм работи перфектно. това не го разбирам Моля, помогнете. (Също така премахнах всеки ненужен код от метода за търсене)

Ако не съм дал достатъчно информация тук, моля, попитайте ме за повече.


person AlexP    schedule 04.03.2014    source източник
comment
Каква е стойността на args, която предавате по време на изпълнение? Проверихте ли ръчно отварянето на същия URL адрес, до който се опитвате да получите достъп от вашия код   -  person Stunner    schedule 04.03.2014
comment
pirateproxy.net/search/The Hobbit The Desolation of Smaug/ Което, ако копирам, поставете в адреса лентата работи добре.   -  person AlexP    schedule 04.03.2014


Отговори (3)


Трябва да кодирате URL низа The Hobbit: The Desolation of Smaug, тъй като там имате специален символ. Пример: пространство.

person Abimaran Kugathasan    schedule 04.03.2014
comment
Това работи! Но все още не разбирам защо. Имах няколко други филма с пространство в него, които не трябваше да променям, за да работи. - person AlexP; 04.03.2014

Подозирам, че се спъна в дебелото черво (:), а не в интервала. Има ли други заглавия с двоеточие?

person John Stoner    schedule 16.05.2014

Вместо да свързвате низове и ненужно да създавате междинни низове и да се провалите, защото URL адресът не е кодиран, можете да използвате вградения UriBuilder за генериране на валиден URL адрес

URL path = UriBuilder.fromPath("http://pirateproxy.net")
            .path("search")
            .path("some movie ")
            .build()
            .toURL();

// http://pirateproxy.net/search/some%20movie%20
person svarog    schedule 29.12.2019