![](/img/trans.png)
[英]Android post JSON to web service php and recieving JSON from service
[英]Post multiple data from Android to PHP web service
到目前為止,我可以將一組數據從Android發送到PHP Web服務。 我希望發送一個數組,並在Web服務中有一個for循環。 那可能嗎? 那是一個好的解決方案嗎? 在這個項目中,我試圖將SQLite與MySQL同步。
這是我的代碼
String username, userid;
username = "Kate";
userid = "3";
String data = "";
try {
data = URLEncoder.encode("username", "UTF-8") + "="
+ URLEncoder.encode(username, "UTF-8");
data += "&" + URLEncoder.encode("userid", "UTF-8") + "="
+ URLEncoder.encode(userid, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String text = "";
BufferedReader reader = null;
try {
URL url = new URL(
address);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(
conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
text = sb.toString();
} catch (Exception ex) {
} finally {
try {
reader.close();
} catch (Exception ex) { }
}
和這個
<?php
include '../inc/connect.php';
include '../inc/class/mysql.class.php';
$name = urldecode($_POST['username']);
$user = urldecode($_POST['userid']);
print " ==== POST DATA =====
Name : $name
Email : $email
User : $user
Pass : $pass";
$ins = mysql_query("INSERT INTO users (UserName, FullName) VALUES ('$name','$user')") or die(mysql_error());
if ($ins) {
echo json_encode(array("result"=>"success","result_txt"=>"Branch sucessfully added."));
exit();
}
?>
您可以將輸入作為JSON發送,然后使PHP對其進行解碼。
因此,您需要在android應用中對所有數據進行編碼,然后將其作為一個大的編碼字符串發送,可能使用URI編碼或Base64,然后在PHP中執行:
$data = json_decode($_POST['data']);
如果使用base64,則可以執行以下操作:
$data = json_decode(base64_decode($_POST['data']));
如果只是將其作為一個字符串發送
$data = json_decode(urldecode($_POST['data']));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.