MainActivity.java
String[] captcha = new String[2];
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getMessle();
}
});
private void getMessle() {
captcha[0] = "before";
captcha[1] = "before2";
RequestClass rc = new RequestClass();
captcha = rc.getCaptcha();
tv.setText(captcha[1]);
}
RequestClass.java
String[] saResult = new String[2];
public String[] getCaptcha() {
httpUrl = new HttpUrl.Builder()
.scheme(strScheme)
.host(strHost)
.addPathSegments(path)
.build();
request = new Request.Builder()
.url(httpUrl)
.addHeader(header, key)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
saResult[0] = response.header("Set-Cookie");
try {
jsonObject = new JSONObject(response.body().string());
saResult[1] = jsonObject.getString("image_url");
} catch (JSONException je) {
}
}
});
return saResult;
}
Я проверил, и не похоже, чтобы какие-то исключения были обнаружены. Я также знаю, что мое приложение также получает ответ, и данные определенно есть в onResponse (). После некоторого расширенного тестирования, похоже, что мой массив назначен до получения ответа.