Я пытаюсь опубликовать объект JSON на странице входа в приложение. Я искал много примеров и пытался их найти. Но только мои устройства с Android 4.3 работают нормально, а другие устройства верхнего уровня API даже не возвращаются. Мой код, как показано ниже:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.LoginBtn:
loading.show();
try {
login();
} catch (JSONException e) {
e.printStackTrace();
}
break;
}
}
public void login(){
okhttp3.OkHttpClient client = new okhttp3.OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10,TimeUnit.SECONDS)
.readTimeout(10,TimeUnit.SECONDS)
.build();
final JSONObject JObje = new JSONObject();
try {
JObje.put("Username", String.valueOf(Username.getText()));
JObje.put("Password", String.valueOf(Password.getText()));
} catch (JSONException e) {
e.printStackTrace();
}
okhttp3.Request request = null;
okhttp3.RequestBody body = null;
body = new FormBody.Builder()
.addEncoded("JSONVALUE", String.valueOf(JObje))
.build();
request = new okhttp3.Request.Builder()
.url(context.getString(R.string.rutKontrolServis))
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.post(body)
.build();
client.newCall(request).enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException {
Log.d("TAG","responded");
}
});
}
URL-адрес R.string.rutKontrolServis выглядит следующим образом: https://ourwebsite.com/folder/package_name.mywebservice
В моем файле Gradle я добавил эту зависимость:
compile 'com.squareup.okhttp3: okhttp: 3.11.0'
Существует ли какой-либо другой синтаксис запроса или какие-либо ограничения относительно сертификатов tls или ssl с более новыми устройствами уровня API? Может ли кто-то показать точку