postman 从Python向Wix发送POST请求?

bf1o4zei  于 2024-01-07  发布在  Postman
关注(0)|答案(2)|浏览(347)

我目前正在尝试从python tkinter GUI向wix免费网站发送POST请求。我已经发送了几个GET请求并成功。但无论我做什么,POST请求都会产生500内部服务器错误。下面是我wix后端的http-functions.js代码。

  1. export function post_posFunc(request) {
  2. let options = {
  3. "headers":{
  4. "Content-Type":"application/json"
  5. }
  6. };
  7. return request.body.text()
  8. .then((body) =>{
  9. return wixData.insert("vidinfo", JSON.parse(body));
  10. })
  11. .then((results)=> {
  12. options.body={
  13. "inserted":results
  14. };
  15. return created(options)
  16. })
  17. .catch((error) =>{
  18. options.body = {
  19. "error":error
  20. };
  21. return serverError(options)
  22. });
  23. }

字符串
在我的tkinter应用程序中,我将视频的名称、大小和类与userId一起传递,代码如下

  1. def runPost(a,b,c,d,e,f):
  2. url = 'https://###.wixsite.com/###/_functions/posFunc/'
  3. myobj = {
  4. "vidUserId":a,
  5. "videoName":b,
  6. "videoSize":c,
  7. "videoClass":d
  8. }
  9. z = requests.post(url, data=myobj)
  10. print(json.dumps(data, indent=2, sort_keys=True))
  11. print("done with post")


我已经尝试过它与 Postman 和它的工作成功.在vidinfo中的字段显示在上面,你可以看到.我已经审查了网站的名称,因为有人告诉我,这是违反规则,释放私人信息,但如果我被允许发布它,请让我知道.我的代码有什么问题?

更新

成功捕获并打印错误。更新了上面的代码并添加了下面的错误

  1. {
  2. "error": {
  3. "errorGroup": "User",
  4. "name": "JsonSyntaxError"
  5. }
  6. }

**

使用json.dumps成功了!

wsewodh2

wsewodh21#

找出实际的错误消息可能会有所帮助。在你的python脚本中,你只是打印状态码。知道用.catch((error) => { ... })捕获并用options.body = { error: error }发送的错误响应可能会给给予你(和我们)更多关于发生了什么的线索。
还要注意的是,发送一个“服务器错误”并不总是有意义的,也就是说,当问题真正与请求有关而不是服务器端。知道错误消息(因此,可能导致错误的原因)将有助于您发送适当的响应和状态代码。
在不知道任何进一步的错误消息信息的情况下,我想知道是不是你处理请求的方式导致了这个问题。你确定你可以从python发送的请求中使用request.body.text()和/或JSON.parse解析请求吗?可能python requests模块没有像Postman那样序列化数据。
希望我所说的能有所帮助。如果你碰巧对上面的帖子做了任何更新,我会继续关注。祝你好运!!

  • 更新 *:

在看到你的响应错误后,在我看来你可能处理请求不正确。正如我上面所说的,Postman可能会以不同于python请求的方式序列化对象。
尝试使用request.post(url, data=json.dumps(data))
同样,您确定可以从request.body.text()方法检索数据吗?我不确定服务器端使用的是什么http框架,但是如果request.body.text()实际上不能返回任何数据,它很可能会将undefined传递给第一个promise处理程序.then((body) => { ... })。由于您的错误是JsonSyntaxError,很可能JSON.parse实际上无法解析它试图解析内容,无论是undefined还是无效的JSON字符串。

mi7gmzs6

mi7gmzs62#

我的问题是因为我在发送post请求之前没有编码我的响应的主体,所以我添加了:final response = await http.post( Uri.parse("endpoint"), body: json.encode(body),// encode the body );
而且它有效!

相关问题