Отправка данных из приложения Android в MongoDB AtlasJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отправка данных из приложения Android в MongoDB Atlas

Сообщение Anonymous »

Я создал приложение в Android Studio, которое может сканировать любой тип кода (например, qr-код, штрих-код и т. д.), и я хочу хранить эти данные внутри MongoDB.
Для этого Я создаю API с двумя маршрутами post/get, чтобы опубликовать элемент и получить все элементы - протестировал его с помощью Postman, и он работает.

Код: Выделить всё

  app.get('/items', async (req, res) => {
const collection = client.db('codes').collection('QR');
const items = await collection.find({}).toArray();
res.send(items);
});

app.post('/items', async (req, res) => {
const collection = client.db('codes').collection('QR');
const result = await collection.insertOne(req.body);
res.send(result);
});
Моя проблема в том, что она не работает, когда я вызываю свой метод внутри Android Studio

Код: Выделить всё

public interface API {
@FormUrlEncoded
@POST("/items")
Call sendData(
@Field("data") String data
);
}

Код: Выделить всё

    public void addStuff(String data){
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("data", data);
} catch (JSONException e) {
e.printStackTrace();
}

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://localhost:3000")
.addConverterFactory(ScalarsConverterFactory.create())
.build();
API api = retrofit.create(API.class);
Call call = api.sendData(jsonObject.toString());
call.enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) {
if (response.isSuccessful()) {
Toast.makeText(getApplicationContext(), "Successfully added data to the Database", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Error getting data from the database" + response.message(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(@NonNull Call call, @NonNull Throwable t) {
Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_LONG).show();
}
});

}
После того, как я отсканировал код с помощью своего приложения, я получил диалоговое окно с вопросом, что делать дальше. Одним из этих вариантов является кнопка «Добавить в базу данных», где я вызываю метод, указанный выше.
В целях тестирования я просто жестко закодировал пример строки, которая передается моему методу.
В целях тестирования я просто жестко закодировал пример строки, которая передается в мой метод.
p>
После этого я получаю тост «Провал».
Пытался подключить отладчик к приложению, но это не помогло, по крайней мере, я не смог понять, где ошибка. Я попытался обернуть строку в JSONObject и отправить ее после того, как я использую метод toString() для предоставленных данных, и я попытался изменить тип данных в интерфейсе API на JSONObject и отправить фактический JSONObject вместо вызова метод onString() для данных.
Все это приводит к сбою.

Подробнее здесь: https://stackoverflow.com/questions/754 ... godb-atlas
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»