У меня сервер Restlet, работающий на моем устройстве Android. Это настроено нормально. Теперь я JUNIT тестирую его, и этот конкретный тест не проходит без причины.http://10.17.1.72:8080/contacts?order=A ... 0&offset=1< /code>, что правильно, я получаю 200 ответа, как и ожидалось. Используя расширение почтальона для Chrome, если я нажимаю на http://10.17.1.72:8080/contacts?oooooor ... 0&offset=1 (обратите внимание, что «заказ» неправильно), я получаю 404, как и я. Пока здесь все в порядке. < /P>
Проблема возникает, когда я создаю клиент Restlet, чтобы сделать этот запрос GET < /code> на моем тесте JUNIT, он получает 200 ответ.public void testGoodRequest() // Success, receives a 200 code.
{
// Create the client resource
ClientResource resource = new ClientResource("http://10.17.1.72:8080/contacts?order=A ... 0&offset=1");
Response response = resource.getResponse();
Log.d(TAG, "Good: " + response.getStatus().getCode());
assertTrue(response.getStatus().getCode() == 200);
}
< /code>
adn Этот должен получить 404, но получает 200, Eventho Again That Get -запрос с помощью почтальника Chrome получает 404: < /p>
public void testBadRequestWithOrderMisspelled()
{
// Create the client resource
ClientResource resource = new ClientResource("http://10.17.1.72:8080/contacts?oofdgrd ... 0&offset=1");
Response response = resource.getResponse();
Log.d(TAG, "BadRequestWithOrderMisspelled: " + response.getStatus().getCode());
assertTrue(response.getStatus().getCode() == 404); // Assert fails, receives 200 instead of 404
}
< /code>
И вот мой метод ручки Restlet: < /p>
@Override
public void handle(Request request, Response response) {
//final ContactList contactList = new ContactList(mContext);
String type = request.getMethod().getName();
String order = request.getResourceRef().getQueryAsForm().getFirstValue("order");
String limit = request.getResourceRef().getQueryAsForm().getFirstValue("limit");
String offset = request.getResourceRef().getQueryAsForm().getFirstValue("offset");
String query = request.getResourceRef().getQueryAsForm().getFirstValue("query");
if(!"order".equals(order) || !"limit".equals(limit) || !"offset".equals(offset) || !"query".equals(query))
{
// Show error
response.setStatus(new Status(Status.CLIENT_ERROR_NOT_FOUND, "Badly formatted URL."));
return;
}
(...)
}
Подробнее здесь: https://stackoverflow.com/questions/229 ... 00-restlet
Должен иметь ответ 404 на запрос GET, но получил 200. Restlet ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Org.restlet.jee:org.restlet.ext.servlet Lib не поддерживает пакет и класс jakarta с Java 21
Anonymous » » в форуме JAVA - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Netsuite "Restlet" ошибки иногда сериализуются как недействительный json
Anonymous » » в форуме Javascript - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-