您好我正在尝试通过php文件向mysqli发送有超过2,000个课程信息的课程列表。但是!每当我尝试发送列表时,它都不会将其发送到服务器。 你能帮我解决这个问题吗? :(
首先,java源代码
public static void sendCourseInfoToDB(List<Subject> subjects, String url) {
try {
// url is my *.php file
URL target = new URL(url);
HttpURLConnection con = (HttpURLConnection) target.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type", "text/html; charset = utf-8");
DataOutputStream out = new DataOutputStream(con.getOutputStream());
int len = subjects.size();
for (int i = 0; i < len; ++i) {
//String t = subjects.get(i).toString();
out.writeBytes(subjects.get(i).toString());
out.flush();
}
out.flush();
out.close();
int responseCode = con.getResponseCode();
System.out.println("Post rqeust to Url : " + url);
System.out.println("Post Params : " + subjects.get(0).toString());
System.out.println("Resoponse Code : " + Integer.toString(responseCode));
con.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
主题类重写toString。 return-statement used参数编码为UTF-8 像这样:
courseCode = 12156&courseName = %EC%8B%A0%EC%86%8C%EC%9E%AC%EA%B3%B5%ED%95%99%EB%B6%80&subjectName = %EC%A2%85%ED%95%A9%EA%B3%BC%EC%A0%9C%EC%84%A4%EA%B3%841&kindOfSubject = %EC%A0%84%EA%B3%B5&score = 2
和php文件
<?php
header("Content-Type : text/html; charset = utf-8");
$mysqli = new mysqli("localhost", "user", "password", "db");
if($mysqli->mysqli_errno) {
print $mysqli_error;
exit();
}
$courseCode = $_POST["courseCode"];
$courseName = $_POST["courseName"];
$subjectName = $_POST["subjectName"];
$kindOfSubject = $_POST["kindOfSubject"];
$score = $_POST["score"];
$mysqli->query("INSERT INTO COURSE VALUES('$courseCode', '$courseName', '$subjectName', '$kindOfSubject', '$score')");
$response = $courseCode;
echo $response;
?>
每当我向DB发送课程信息时,我应该调用'sendCourseInfoToDB函数吗?我不知道有什么问题..帮我疯狂编码人〜!〜