Linked libcurl with mear. Now working on refining and making things cleaner for authentication

This commit is contained in:
kdeng00
2019-10-01 21:48:18 -04:00
parent 879e40f4de
commit 3c8064dfd2
22 changed files with 5508 additions and 16 deletions
+75 -2
View File
@@ -16,27 +16,100 @@
#include <sys/mman.h>
#include "nlohmann/json.hpp"
#include <curl/curl.h>
#include "model/Song.h"
#include "model/User.h"
std::string fetchToken();
model::Song initSong();
model::User initUser();
size_t funcTest(void*, size_t, size_t, char*);
//size_t funcTest(void*, size_t, size_t, std::string&);
int demoCall();
void printSong(const model::Song&);
std::string fetchToken()
{
auto user = initUser();
nlohmann::json usr;
usr["username"] = user.username;
usr["password"] = user.password;
CURL *curl;
CURLcode res;
curl = curl_easy_init();
std::string tok;
if (curl) {
const auto url = "";
char resp[2048];
curl_easy_setopt(curl, CURLOPT_URL, url);
const std::string a = usr.dump();
//std::string r;
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, a.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, funcTest);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
//curl_easy_setopt(curl, CURLOPT_WRITEDATA, r);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
const std::string i = resp;
auto s = nlohmann::json::parse(i);
tok = s["token"].get<std::string>();
return tok;
}
return "";
}
model::Song initSong()
{
model::Song song;
song.title = "hello";
song.artist = "some artist";
return song;
}
model::User initUser()
{
model::User user;
user.username = "";
user.password = "";
return user;
}
size_t funcTest(void* ptr, size_t size, size_t nmemb, char *e)
{
std::memcpy(e, ptr, nmemb);
e[nmemb] = '\0';
return nmemb;
}
size_t funcTest(void* ptr, size_t size, size_t nmemb, std::string& e)
{
e = (char*) ptr;
return nmemb;
}
int demoCall()
{
model::Song song = initSong();
@@ -76,5 +149,5 @@ Java_com_example_mear_activities_DemoStreamActivity_test(
JNIEnv *env,
jobject /* this */) {
demoCall();
auto tok = fetchToken();
}