https://pubsubhubbub.appspot.com/subscribe нулевой ответ - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть клиентский клиент, который подключается к https://pubsubhubbub.appspot.com/subscribe Я поставил параметр ниже

https://pubsubhubbub.appspot.com/subscribe
hub.topic    http://...../lastupby
hub.callback http://localhost:8080/Subscription/subscription/subscribe
hub.mode subscribe

, но получил нулевой ответ, я не могу понять, в чем проблема, спасибо за вашу помощь

HttpPost httppost = new HttpPost(hub);  
                List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                nvps.add(new BasicNameValuePair("hub.callback", callbackUrl));
                nvps.add(new BasicNameValuePair("hub.mode", "subscribe"));
                nvps.add(new BasicNameValuePair("hub.topic", topic_url));
                nvps.add(new BasicNameValuePair("hub.verify", "sync"));
                if (lease_seconds != null)
                    nvps.add(new BasicNameValuePair("hub.lease_seconds", lease_seconds));
                //For future https implementation
                //if ((secret !=null) && (secret.getBytes("utf8").length < 200))
                //  nvps.add(new BasicNameValuePair("hub.hub.secret", secret));
                if (verifytoken !=null)
                    nvps.add(new BasicNameValuePair("hub.verify_token", verifytoken));

                webserver.addAction("subscribe",topic_url, verifytoken);

                httppost.setEntity(new UrlEncodedFormEntity(nvps));
                httppost.setHeader("Content-type", "application/x-www-form-urlencoded");
                httppost.setHeader("User-agent", "RSS pubsubhubbub 0.3");

                //create the thread and start it running
                GetThread thread = new GetThread(httpClient, httppost);
                thread.start();
                thread.join();

спасибо

1 Ответ

1 голос
/ 20 декабря 2011

Первое, что вы должны проверить, это HTTP-статус ответа, а затем проверить само тело, которое может включать в себя то, что вы делаете неправильно.

Кроме того, основываясь на вашем примере, я почти уверен, что проблема связана с вашим URL обратного вызова. Когда вы отправляете запрос на подписку на концентратор, концентратор должен проверить у вас, что вы хотите эту подписку. Затем он отправляет запрос на ваш URL обратного вызова (проверьте раздел о намерениях в спецификации). Поскольку ваш обратный вызов действительно находится за брандмауэром, концентратор никогда не сможет достичь его.

...