gpt4 book ai didi

java - Android HttpURLConnection POST 不工作

转载 作者:行者123 更新时间:2023-11-29 03:26:36 25 4
gpt4 key购买 nike

我对通过 POST 传递给 URL 的参数有疑问。当我在 PHP 中尝试检索它们时,它说 $_POST 是空的:

<?php
require_once 'credentials.php';
$connection = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE);
$query = 'INSERT INTO ratings (disco, rating) VALUES (' .mysqli_real_escape_string($connection, $_POST["disco"]). ', ' . mysqli_real_escape_string($connection, $_POST["rating"]) . ')';
$result = mysqli_query($connection, $query);
echo json_encode($result);
mysqli_close($connection);
?>

我的 Android 代码如下所示:

@Override
protected String doInBackground(String... params) {
String response = "";
try {
URL url = new URL(params[0]);
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();

List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("disco", params[1]));
parameters.add(new BasicNameValuePair("rating", params[2]));

OutputStream outputStream = urlConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
writer.write(getQuery(parameters));
writer.flush();
writer.close();
outputStream.close();
int responseCode = urlConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK) {
String line;
BufferedReader br=new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
while((line = br.readLine()) != null) {
response += line;
}
}
} catch(Exception e) {
System.out.println(e.getMessage());
}
return response;
}

private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;

for(NameValuePair pair : params) {
if(first)
first = false;
else
result.append("&");

result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}

return result.toString();
}

这是怎么回事?提前致谢

编辑:更新了代码,但仍然不起作用。

最佳答案

"&disco="

做那个:

"disco="

关于java - Android HttpURLConnection POST 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com