Я делаю несколько тестов, используя данные, чтобы зарегистрировать нового пользователя в моей БД, отправив json по почте. Сервер возвращает статическую строку только для тестирования. Я получаю правильный ответ с помощью консоли и CURLCan't Post JSON для сервера Express js с использованием OkHttp3 в Android
curl --data '' http://127.0.0.1:3000/api/user/register
<!DOCTYPE html><html><head><title>Express</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Express</h1><p>Welcome to Express</p></body></html>
и даже с расширением Почтальоной отправкой запроса на запись в тот же URL я получаю правильный ответ, а также. Но приведенный ниже код не получает никакого ответа от сервера. Чего не хватает?. Это не вызывает ошибок, а json корректен после проверки отладчика (это не имеет значения, но на всякий случай кто-то хочет знать), просто регулярная строка. Отладчик сбой в этой строке
Response response = client.newCall(request).execute();
private void createUser(String name, String email, String password){
//create JSON
final String userJson = formatUserAsJSON(name,email,password);
//send JSON
new AsyncTask<Void,Void,String>(){
@Override
protected String doInBackground(Void... voids) {
try {
//1.create client Object
OkHttpClient client = new OkHttpClient();
//2.Define request being sent to server
RequestBody postData=new FormBody.Builder()
.add("json",userJson)
.build();
Request request=new Request.Builder()
.url("http://127.0.0.1:3000/api/user/register")
.post(postData)
.build();
//3.Transport the request and wait for response to process next
Response response = client.newCall(request).execute();
String result = response.body().string();
return result;
} catch (Exception e) {
Log.d("error_connection","couldn't connect to the API");
return null;
}
}
}.execute();
}
Я был бы признателен за некоторые отзывы по этой проблеме. Большое спасибо
РЕДАКТИРОВАТЬ: Сервер не дает ответа, так как приложение андроида не достигает его. Я вижу на консоли ubuntu, и nodejs не печатает никакого сообщения ни о каком запросе .....
EDIT 2: В манифесте Android у меня есть разрешение пользователя на доступ к сети, так что это не так ... ..
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Попробуйте зарегистрировать ответ, который вы получаете, напечатайте здесь, и мы можем взять его оттуда. – Vucko
read my Edit .... – Juan