POST
을 HttpURLConnection
으로 만드는 기본 Android 앱을 만들고 있습니다. 내 웹 API에서 응답 메시지를 반환하고 싶습니다.doInBackground가 변수를 업데이트하지 않습니다.
내 MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView mTextView = findViewById(R.id.textView);
AsyncExample asyncExample = new AsyncExample();
asyncExample.execute();
mTextView.setText(asyncExample.getResponseMsg());
}
}
응용 프로그램을 실행 한 후 내 AsyncExample.java
class AsyncExample extends AsyncTask<Void, Void, Void> {
private HttpURLConnection con;
private String responseMsg;
protected void onPreExecute() {
responseMsg = "empty message";
}
@Override
protected Void doInBackground(Void... params) {
String urlParameters = "param1=data1";
byte[] postData = urlParameters.getBytes(Charset.forName("UTF-8"));
int postDataLength = postData.length;
String request = "http://192.168.1.30:6262";
URL url = null;
try {
url = new URL(request);
con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setInstanceFollowRedirects(false);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("charset", "utf-8");
con.setRequestProperty("Content-Length", Integer.toString(postDataLength));
responseMsg = con.getResponseMessage();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public String getResponseMsg() {
return responseMsg;
}
}
, 내 TextView
에 empty message
를 얻을. 왜 내 doInBackground
업데이트되지 않습니다? con.getResponseMessage()
이 null
이라도 업데이트해야합니까?
해당 문자열 응답을 저장 doinbackground 방법에서와 onPostexecute에서 응답을 반환해야합니다에 대한 원하고 지금 당신이 그 문자열 응답에 액세스 할 수 모두를 말할 것이다 –
아직 또 다른 ... [IT IS MULITHREADING] (https://ideone.com/PPHi95) – Selvin