Arhn - архитектура программирования

XML-запрос Java Rest Service синтаксически неправильный формат

Я новичок в веб-сервисах. Я создаю приложение для Android и пытаюсь отправить запрос POST в веб-службу, но не уверен, что это правильный формат.

Это метод POST в REST:

@POST
@Override
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,MediaType.TEXT_XML})
public void create(Users entity) {
    super.create(entity);
}

Это атрибуты класса, который соответствует нашей таблице. Я использую базу данных Oracle 11g, сервер Glassfish 4.1.1 и Netbeans. Я пытаюсь вызвать PUT из своего приложения для Android. Может ли кто-нибудь предложить способ сделать это?

public class Users implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "USER_ID")
private Short userId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "USERNAME")
private String username;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "PASSWORD")
private String password;

@Basic(optional = false)
@NotNull
@Size(min = 1, max = 40)
@Column(name = "EMAIL")
private String email;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "users")
private Profiles profiles;

Я пытаюсь вызвать метод POST с телом:

`<users> 
<email> [email protected]</email>
<userid>1</userid>
<password>pass</password>
<username>user</username>
</users>`

Как мне это назвать?


Ответы:


1

вы должны использовать JAXB для сериализации вашего объекта или создать строковое представление xml, которое вы хотите опубликовать самостоятельно. Для отправки запроса используйте клиентский API из jaxrs https://docs.oracle.com/javaee/7/tutorial/jaxrs-client001.htm#BABBIHEJ или если вы используете Spring RestTemplate

14.04.2016

2

Вы можете использовать пары значений имени, как показано ниже:

    List userdetails = new ArrayList();
userdetails.add(new BasicNameValuePair("email", "[email protected]"));
userdetails.add(new BasicNameValuePair("userid", "1"));
userdetails.add(new BasicNameValuePair("password", "5353$$"));
userdetails.add(new BasicNameValuePair("username", "shy"));

Затем опубликуйте его, как показано ниже:

  // Making HTTP request
        try { 
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("your url goes here");
httpPost.setEntity(new UrlEncodedFormEntity(userdetails));//params added here
httpPost.setHeader("Content-type","application/x-www-form-urlencoded");
httpPost.setHeader("Accept", "application/json");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
Log.d("LINE",line);
sb.append(line + "\n");
} is.close();
json = sb.toString();
} catch (Exception e) { e.printStackTrace();
Log.e("Buffer Error", "Error converting result " + e.toString());
}
Log.d("RESULT",json);

Метод Post в вашем веб-сервисе выглядит следующим образом:

    @POST
    @Consumes({MediaType.APPLICATION_XML,MediaType.TEXT_XML,MediaType.APPLICATION_JSON})
    @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    @Path("/insert")
    public Response insertRecord(Users users) {
    }
14.04.2016
  • пример реализации веб-сервиса здесь: ссылка 14.04.2016
  • Я попытался добавить в круглую скобку Consumes в методе POST MediaType.APPLICATION_FORM_URLENCODED_TYPE, но это не позволяет мне, говоря, что его нельзя преобразовать в String. 14.04.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..