Java-код (URLConnection — метод удаленного получения) в HTML (Blogger.com сообщение)

#java #html #httpurlconnection #blogger #urlconnection

#ява #HTML #httpurlconnection — соединение #blogger #urlconnection

Вопрос:

В сообщении Blogger у меня есть этот фрагмент

 <applet codebase="https://droidsnip.googlecode.com/hg/" height="300" archive="text.jar" width="300" code="Google.class">
  

и храните этот java-код в Google code:
общедоступный класс Google расширяет java.applet.Апплет {
публичная статическая пустота main() {

     }

    public void paint(Graphics g) {
        String result = sendGetRequest(
                "http://www.google.com", null);

        g.drawString(result, 30, 30);
    }

    public static String sendGetRequest(String url,
            String requestParameters) {
        String result = null;
        if (url.startsWith("http://")) {
            try {
                URL url1 = new URL(url);
                URLConnection conn = url1.openConnection();
                // Get the response
                BufferedReader rd = new BufferedReader(new InputStreamReader(
                        conn.getInputStream()));
                StringBuffer sb = new StringBuffer();
                String line;
                while ((line = rd.readLine()) != null) {
                    sb.append(line);
                }
                rd.close();
                result = sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return resu<
    }
}
  

И я не получаю никакого результата в post, но я получаю обычный html-ответ, используя Eclipse.
В чем может быть проблема с Blogger?
Кстати, если я просто использую

 g.drawString("test", 30, 30);
  

Я получаю строку на посту, так что это работает

Комментарии:

1. Если у вас есть новый вопрос, пожалуйста, опубликуйте новый вопрос. Не редактируйте другой вопрос.

2. но я отчасти связан с предыдущей проблемой .. хорошо, попытаюсь объяснить это в новом q

3. Это связано, но не то же самое, иначе у вас не было бы нового вопроса 🙂

Ответ №1:

Неподписанные Java-апплеты ограничены в том, что они могут делать, чтобы предотвратить вредоносное использование. Если ваш апплет не подписан, он может подключаться только к серверу, на котором он размещен (т. Е. droidssnip.google.com в данном случае).

Вот ссылка на то, как подписать апплет. Обратите внимание, что если вы используете самозаверяющий сертификат (который вы создаете самостоятельно с помощью keytool), то при запуске апплета вам будет предложено предупреждение безопасности. Чтобы избежать этого, вам понадобится сертификат от доверенного центра сертификации.

Комментарии:

1. Теперь у меня возникла еще одна проблема.. Описал это в сообщении

Ответ №2:

Я предполагаю, что вы столкнулись с ограничением безопасности, так называемой «политикой того же источника»: апплет может взаимодействовать только с сервером, с которого он был загружен. Смотрите подробности здесь:http://download.oracle.com/javase/tutorial/deployment/applet/security.html

Обновление: Помимо подписанных апплетов другим обходным путем может быть реализация сервлета «прокси». В этом случае sevlet опрашивает Google (ie. реализует метод sendGetRequest) и взаимодействует с вашим апплетом (т.Е. апплет считывает ваш сервлет, который, в свою очередь, считывает Google).

Комментарии:

1. это правда, но теперь у меня другая проблема, я описываю ее в сообщении