Linked libcurl with mear. Now working on refining and making things cleaner for authentication
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user