我正在尝试将 member_id
、created_at
和 text
改造成服务器。但是,会出现内部服务器错误 500。我找不到原因。我的代码有问题吗?
附上代码server.py、API.kt、dataClass.kt、mainActivity.kt。
server.py
@app.route('/diary', methods = ['POST'])
def diary():
create_app()
user = request.json
user_diary = app.database.execute(text("""
INSERT INTO diary {
member_id,
created_at,
text
} VALUES {
:member_id,
:created_at,
:text
}
"""), user).lastrowid
return "success", 200
API.kt
interface API {
@POST("/diary")
fun postText(@Body dataClass: dataClass): Call<dataClass>
}
dataClass.kt
data class dataClass(
var member_id: Int,
var created_at: String,
var text: String
)
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val BASE_URL = "http://IP:5000"
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
val api = retrofit.create(API::class.java)
val callPostText = api.postText(dataClass(1,"2021-07-21","hi"))
callPostText.enqueue(object: Callback<dataClass>{
override fun onResponse(call: Call<dataClass>, response: Response<dataClass>) {
Log.d(TAG, "Success: ${response.raw()}")
}
override fun onFailure(call: Call<dataClass>, t: Throwable) {
Log.d(TAG, "Fail: $t")
}
})
}
}