#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. это правда, но теперь у меня другая проблема, я описываю ее в сообщении