#java #python #json #post
#java #python #json #Публикация
Вопрос:
Я запрашиваю POST с помощью этого кода
URL url = new URL("adress/discordnotifi");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setReadTimeout(5000);
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.connect();
JSONObject object = new JSONObject();
myPWord = ((EditText) (findViewById(R.id.edit_Id))).getText().toString();
object.put("token", tokens);
object.put("discordid", mydiscord);
OutputStream outputStream = httpURLConnection.getOutputStream();
outputStream.write(object.toString().getBytes("UTF-8"));
Log.d("debug",object.toString());
outputStream.flush();
outputStream.close();
и мои токены и mydiscord — это информация, которую я хочу отправить в формате JSON, например
{"token":"tokens","discordid":"mydiscord"}
и из python flask
@app.route('/discordnotifi', methods=['POST'])
def post():
content = request.json
print(content)
Discordid = int(content["discordid"])
token = content['token']
"""Discordid = request.form.get("discordid")
token = request.form.get("token")"""
print(Discordid, token)
return ("Thx")
при печати (содержимого) Я получаю None Я действительно не знаю, что здесь не так. Я планировал отправить Json с информацией, но я не получаю ничего из Json.
Ответ №1:
Самое меньшее, чего вам не хватает, это включить вывод при соединении. Добавить:
httpURLConnection.setDoOutput(true);
Сервер также может потребовать, чтобы вы установили некоторые заголовки, например content-type
, чтобы сообщить ему, что вы отправляете JSON.
httpURLConnection.setRequestProperty("Content-Type", "application/json; utf-8");
Если вы можете использовать Java 11, рассмотрите возможность использования нового класса HttpClient вместо HttpURLConnection. Это упрощает создание правильных запросов.