Этот ответ относится к более старой версии Java. Вы можете посмотреть на ответ ccleve.
Вот традиционный способ сделать это:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static String getText(String url) throws Exception {
URL website = new URL(url);
URLConnection connection = website.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
return response.toString();
}
public static void main(String[] args) throws Exception {
String content = URLConnectionReader.getText(args[0]);
System.out.println(content);
}
}
Как предложил @extraneon, ioutils позволяет вам сделать это в очень красноречивый путь, который все еще находится в духе Java:
InputStream in = new URL( "http://jakarta.apache.org" ).openStream();
try {
System.out.println( IOUtils.toString( in ) );
} finally {
IOUtils.closeQuietly(in);
}
Используйте существующий инструмент 'REST client', который облегчает осматривать запросы и ответы, как RESTClient.
Я склонен писать модульные тесты на УСПОКОИТЕЛЬНЫЕ ресурсы с помощью Джерси , который идет с хорошим клиентом REST. Хорошая вещь состоит в том при реализации УСПОКОИТЕЛЬНЫХ ресурсов с помощью JAX-RS тогда, клиент Джерси может снова использовать поставщиков объекта таких что касается JAXB/XML/JSON/Atom и т.д - таким образом, можно снова использовать те же объекты на стороне сервера, как Вы используете на клиентском модульном тесте.
, Например вот случай модульного теста от проект Camel Apache, который ищет, полезные нагрузки XML от УСПОКОИТЕЛЬНОГО ресурса (использующий JAXB возражают Конечным точкам). Ресурс (uri), метод определяется в этот базовый класс , который просто использует клиентский API Джерси.
, например,
clientConfig = new DefaultClientConfig();
client = Client.create(clientConfig);
resource = client.resource("http://localhost:8080");
// lets get the XML as a String
String text = resource("foo").accept("application/xml").get(String.class);
Я использую restclient, доступный от Google Code . Это - простой Java приложение Swing, которое поддерживает все методы HTTP и позволяет Вам полный контроль над HTTP-заголовками, conneg, и т.д.
Кроме использования одного из инструментов в ответе Peter Hilton, я должен был бы сказать, что сценарии тестов с LWP или некоторым подобным инструментом могут быть Вашей единственной опцией. Вы могли обходить использование LWP, просто открыв сокет, представив необработанный Запрос HTTP и исследовав то, что Вы получаете в ответ. Но насколько я знаю, существует недостаток инструментов тестирования для этого вида домена - большая часть взгляда на это пространство задач, прежде всего, от линзы разработчика веб-сайта, и для них, браузер является действительно платформой тестирования.
Можно использовать скрипача Компоновщик для отладки успокоительные сервисы ..
Обновленный JD 12 сентября 2013: Разработчика Отдыха теперь звонят Компоновщик .
В моей фирме мы используем множество различных инструментов и подходов к тестированию УСПОКОИТЕЛЬНЫХ сервисов:
Мы пишем ЗАВИХРЕНИЕ сценарии - по существу единственная команда, сохраненная в файле. Один файл на ресурс на метод. Для ПОМЕЩЕННОГО и POST, у нас обычно будут файлы, содержащие представления для отправки вместе с ВИХРЕВЫМ сценарием. Например, для ресурса почтового ящика, у нас мог бы быть файл, названный mailbox_post.cmd
, который мог бы содержать строку curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox
. Нам нравится этот подход, потому что мы заканчиваем тем, что создали набор тестов, которые могут запускаться в пакете, или по крайней мере раздаваться между тестерами и использоваться для регрессионного тестирования.
Мы используем ЗАВИХРЕНИЕ и RESTClient для специальных тестов
, Мы сделали, чтобы сервис обслуживал XHTML по умолчанию, таким образом, это доступно для просмотра, и добавьте ресурсы форм, таким образом, сервис на самом деле частично или полностью тестируемое использование браузера. Это было частично вдохновлено некоторыми частями УСПОКОИТЕЛЬНЫЕ веб-сервисы , где авторы показывают, что строка между веб-сервисами и веб-приложениями, возможно, не должна быть столь твердой и строгой, как обычно принимается.
Мы пишем функциональные испытания как Groovy закрытия, с помощью платформа Restlet , и запускаем тесты с исполнителем тестов сценарий Groovy. Это полезно, потому что тесты могут быть с сохранением информации, основываться друг на друге и совместно использовать переменные, в надлежащих случаях. Мы находим, что API Restlet прост и интуитивен, и так легок записать быстрые Запросы HTTP и протестировать ответы, и это еще легче, когда используется в Groovy. (Я надеюсь совместно использовать эту технику, включая сценарий исполнителя тестов, на наш блог скоро.)
Инструмент, который я нашел полезным, если вы используете OS X Leopard:
Это очень простая программа с графическим интерфейсом, которая позволяет создавать запросы http к ресурсу. и просмотрите ответ.
Если вам нужен бесплатный инструмент для той же цели с дополнительной возможностью отправки данных в многочастной форме, то он находится здесь http://code.google.com/a/eclipselabs.org/p/restclient-tool/