以前,我可以从 php 远程访问字符串。一开始我觉得这很困难,但 AsyncTask 为我完成了工作。现在,我可以访问从 php 到 sql server 的查询结果。但我想将一个字符串从我的 java 类传递给 php,当我用谷歌搜索一些信息时,我看到了一些 JSON 帖子并获取了代码,但我无法清楚地理解它们。这是我的代码:
protected String doInBackground(Void... params) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String url = "http://122.2.8.226/MITBookstore/sqlconnect.php";
HttpURLConnection urlConnection = null;
String line;
try {
urlConnection = (HttpURLConnection) new URL(url).openConnection();
InputStream in = urlConnection.getInputStream();
br = new BufferedReader(new InputStreamReader(in));
while ((line = br.readLine()) != null) {
sb.append(line);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return sb.toString();
字符串包含在“sb.toString()”中。现在我如何在我的代码中添加一个 JSON 东西来将字符串从 java 发送到 php,并将结果字符串从 php 获取到 java。在此先感谢您的帮助。
最佳答案
如果您从服务器接收到JSON 格式的响应,请先将json 字符串转换为JSONObject。然后读取json数据供你使用。
try {
JSONObject obj = new JSONObject(sb.toString()); // make string to json obj
Iterator iter = obj.keys(); // get all keys from json obj and iterating
while(iter.hasNext()){
String key = (String)iter.next();
String str = obj.get(key).toString();
// write your code
}
} catch(Exception e) {
e.printStackTrace();
}
您的代码已包含问题的答案。建立 url 连接后,只需添加参数即可使用 OutputStreamWriter 将数据发送到服务器,就像您使用 InpustStreamReader 接收响应一样。
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String url = "http://122.2.8.226/MITBookstore/sqlconnect.php";
HttpURLConnection urlConnection = null;
String line;
try {
urlConnection = (HttpURLConnection) new URL(url).openConnection();
// wrtie params
OutputStreamWriter we = new OutputStreamWriter(urlConnection.getOutPutStream());
wr.write(data); // data (make json obj to 'key=value' string)
wr.flush();
wr.close();
// read response
InputStream in = urlConnection.getInputStream();
br = new BufferedReader(new InputStreamReader(in));
while ((line = br.readLine()) != null) {
sb.append(line);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}enter code here
关于java - 如何使用 JSON 将字符串从 android 传递和读取到 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315397/