我试图通过curl将以下JSON对象发送到我的Flask应用程序,但出现错误400。我认为这是因为脚本中的值包含许多特殊字符,当我用“ test”替换那里的值时,它工作正常,我正在使用Windows。
卷曲请求
curl -X POST -d @example_post.json http://test/hlt --header "Content-Type:application/json; charset=utf-8"
数据:
{
"item-type": "Magazine",
"clip-id": "",
"source-language": null,
"target-language": "de",
"item-id": "0000000b000ca0d5",
"item-title": "Drone Malaui | SHIS200207_001_MalawiDrones_01F",
"publication-title": "",
"video-path": "test_files/TestFile.mp4",
"ftp-url": "test_files/TestFile.mp4",
"script": " ++++++++++++++++++++++++++++++++++++++++++++++++++Bilder: The_power_of_hope1.KONF.20728229++++++++++++++++++++++++++++++++++++++++++++++++++Première: SHIS200207_001_MalawiDrones_01F++++++++++++++++++++++++++++++++++++++++++++++++++Titel:evo aquí he hecho este drone. Lo construí con mis propias manos, con los materiales que nos proporcionan en el curso. Nos dieron los materiales y nos explicaron cómo emplearlos. Seguí las instrucciones y aquí está el resultado.\\\"+++1:34Ellos son los 26 primeros alumnos de los 150 que la academia planea formar antes de finales de 2021. A partir de 2022, está previsto ofrecer una maestría en tecnología de drones. 1:49 +++SOT Rudolf Schwenk, UNICEF Malawi country representative+++\\\"Es un paso importante para ayudar a los jóvenes a adquirir habilidades del siglo XXI. La década que recién comenzó va a ser digital, y ayudar a los jóvenes a mejorar sus habilidades y aprender tecnología digital y manejo de drones va a suponer un avance enorme, no sólo para Malawi, sino también para muchos otros países de África.\\\"+++2:13Gracias a jóvenes como ellos, la tecnología de los drones con fines humanitarios podrá levantar vuelo y servir de ejemplo a otros países. "
}
app.py
@app.route('/mydomain', methods=['POST'])
def upload_videos():
print('request=', request.json, file=sys.stderr)
if request.method == "POST":
data = request.get_json()
if data is not None:
# print('request=', request, file=sys.stderr)
res = upload_file(data, bucket)
print(res, file=sys.stderr)
return(res)
return 'no data found'
答案 0 :(得分:0)
您是否尝试过将字符集设置为“拉丁1”(ISO-8859-1)?使用Windows数据时,这通常是问题。拉丁语1表示Unicode字符集的前256个代码点。代码点0-127就像使用UTF-8一样被编码,但是代码点128-255被编码为Latin-1的单字节和UTF-8的2字节序列。有关更多信息,请参见https://en.wikipedia.org/wiki/ISO/IEC_8859-1。