При отладке я вижу, что он помещает все, что мне нужно, в sb StringBuilders, но после второго sb данные просто исчезают, и то, что было ранее записано в security_string, также удаляется, не знаю почему.
Вот весь код, немного изменил его с тех пор, как я опубликовал. По-прежнему то же самое, это не выходит за рамки, потому что результат get_kat, который я получаю, отсутствует, только результат get_ter отсутствует.
@Override
public String doInBackground(String... voids) {
String result = "";
result=getting_kat();
result+=getting_ter();
//Making sure it gets put into the safety string
safety_string=result;
return result;
}
public String getting_kat(){
String result = "";
String resultkat = null;
String connstr = "My connection string";
try {
URL url = new URL(connstr);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
InputStream ips = http.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(ips, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = "";
//Line by Line reading the data from php
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
//String it together into one line
resultkat = sb.toString();
//Adding a separator for later split
result=resultkat+"#KATEGORIA/TERMEK#";
br.close();
ips.close();
http.disconnect();
} catch (MalformedURLException e) {
result = e.getMessage();
} catch (IOException e) {
result = e.getMessage();
}
return result;
}
public String getting_ter(){
String result = "";
String resultter=null;
String connstr2 = "My connection string 2";
try {
URL url = new URL(connstr2);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
InputStream ips = http.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(ips, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = "";
//Line by Line reading the data from php
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
//String it together into one line
resultter = sb.toString();
result=resultter;
br.close();
ips.close();
http.disconnect();
} catch (MalformedURLException e) {
result = e.getMessage();
} catch (IOException e) {
result = e.getMessage();
}
return result;
}




Я не вижу ошибки в коде. Я немного почистил его для вас, но он должен работать как до, так и после моих изменений. Вы не описываете, что на самом деле с этим не так. При отладке у вас может просто быть тайм-аут на вашем соединении.
public String doInBackground(String... voids) {
String result = getting_kat() + "#KATEGORIA/TERMEK#" + getting_ter();
//Making sure it gets put into the safety string
safety_string = result;
return result;
}
public String getting_kat() {
String result = "";
String connstr = "My connection string";
try {
HttpURLConnection http = connect(connstr);
result = readFromPhp(http);
http.disconnect();
} catch (MalformedURLException e) {
result = e.getMessage();
} catch (IOException e) {
result = e.getMessage();
}
return result;
}
public String getting_ter() {
String result = "";
String connstr = "My connection string 2";
try {
HttpURLConnection http = connect(connstr);
result = readFromPhp(http);
http.disconnect();
} catch (MalformedURLException e) {
result = e.getMessage();
} catch (IOException e) {
result = e.getMessage();
}
return result;
}
private HttpURLConnection connect(String connstr) throws IOException {
URL url = new URL(connstr);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
return http;
}
private String readFromPhp(HttpURLConnection http) throws IOException {
// try-with-resources - so you don't have to call close()
try (
InputStream ips = http.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(ips, "UTF-8"), 8)
) {
StringBuilder sb = new StringBuilder();
String line;
//Line by Line reading the data from php
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
//String it together into one line
return sb.toString();
}
}
Это не соединение, при отладке, когда я заполняю конструкторы строк, я вижу, что он получает данные, но после этого данные просто удаляются. Кстати, я исправил это, не знаю, как это работало, но я просто использовал свою безопасность_string для получения данных в while (), и это сработало, но в любом случае спасибо за помощь
Я пробовал использовать ваш код, результат в обоих случаях был ничем, затем я ввел две новые общедоступные строки security_string_kat и ..._ ter, kat работает, ter остается пустым, так странно, и снова, когда я отлаживаю, вижу, что все поступающие данные помещаются в построитель строк, и я все еще не получаю данных в и, но, как я уже сказал, только когда вызывается get_ter ... fml <3 java
что значит "результат - ничто", как этот код вызывается в вашей программе, к какому классу относится эта часть?
это AsyncTask?
Я бы порекомендовал вам узнать значение DRY. Повторение кода нехорошо. Вам следует инкапсулировать проделанную здесь работу в более простой метод, который вы можете протестировать на стороне и использовать. Держу пари, что проблема связана с областью видимости, но трудно сказать, не видя всего метода.