Senden Sie Daten von der Android-App an MongoDB AtlasAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Senden Sie Daten von der Android-App an MongoDB Atlas

Post by Guest »

Ich habe in Android Studio eine App erstellt, die jede Art von Code (wie QR-Code, Barcode usw.) scannen kann, und ich möchte diese Daten in MongoDB speichern.
Dafür Ich baue eine API mit 2 Routen „Post/Get“, um einen Artikel zu posten und alle Artikel zu erhalten – habe es mit Postman getestet und es funktioniert.

Code: Select all

  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);
});
Mein Problem ist, dass es nicht funktioniert, wenn ich meine Methode in Android Studio aufrufe

Code: Select all

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

Code: Select all

    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();
}
});

}
Nachdem ich einen Code mit meiner App gescannt habe, erhalte ich einen Dialog, der mich fragt, was als nächstes zu tun ist. Eine dieser Optionen ist eine Schaltfläche „Zur Datenbank hinzufügen“, mit der ich die obige Methode aufrufe.
Zu Testzwecken habe ich gerade eine Beispielzeichenfolge fest codiert, die an meine Methode übergeben wird.
Danach bekomme ich den „Fehler“-Toast.
Ich habe versucht, den Debugger an die App anzuhängen, aber das hat nicht wirklich geklappt, zumindest konnte ich es nicht Finden Sie heraus, wo der Fehler liegt. Ich habe versucht, den String in ein JSONObject zu packen und ihn zu senden, nachdem ich die toString()-Methode für die bereitgestellten Daten verwendet habe, und ich habe versucht, den Datentyp in der API-Schnittstelle in JSONObject zu ändern und ein tatsächliches JSONObject zu senden, anstatt es aufzurufen die onString()-Methode für die Daten.
Alles davon führt zu einem Fehler.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post