【发布时间】:2016-01-15 06:25:24
【问题描述】:
当在 editText 字段中填写详细信息时,我从 PHP 获得 JSON 响应为 {"success":'Hi Namrata...'}。我想读取成功值并将其显示在新活动中,如果出现 {"error":'something occurred'} 我想在同一个活动中。我该怎么做。 这是我的 MainActivity
public class MainActivity extends AppCompatActivity {
public Button blogin;TextView content;
public EditText uname, pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uname = (EditText) findViewById(R.id.uname);
pass = (EditText) findViewById(R.id.pass);
content= (TextView)findViewById( R.id.content );
blogin = (Button) findViewById(R.id.blogin);
blogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new JsonTask().execute("https://www.aboutmyclinic.com/test.php",uname.getText().toString(),pass.getText().toString());
}
});
}
public class JsonTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(10000);
connection.setConnectTimeout(15000);
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("firstParam", params[1])
.appendQueryParameter("secondParam", params[2]);
//.appendQueryParameter("type", params[3]);
String query = builder.build().getEncodedQuery();
OutputStream os = connection.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
connection.connect();
InputStream inputStream = connection.getInputStream();
StringBuffer buffer = new StringBuffer();
reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line + "\n");
}
return buffer.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (final IOException e) {
}
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
content.setText(result);
}
}
}
【问题讨论】:
-
startingandroid.com/… 请检查这个。在这里,您将找到有关向服务器发送和接收数据以及如何解析数据的完整详细信息。
-
解析响应并做相应的处理
-
可能 JSON 字符串是
result那么你在使用 Intent 向下一个活动发送result字符串时遇到什么问题 -
解析 JSON 响应:链接stackoverflow.com/questions/9605913/…