【问题标题】:Pass files with json payload in single requests to web2py endpoint在单个请求中将带有 json 有效负载的文件传递到 web2py 端点
【发布时间】:2020-10-22 21:10:44
【问题描述】:

我在 web2pydefault.py 控制器中编写了名为 foobar 的端点,看起来像

@service.json
def foobar(*args, **vars):
    payload = request.vars.student
    print(payload)
    #Above payload prints [rollNo, firstName, lastName]
    #Expected is {"rollNo": 6299857, "FirstName": Prasad, "LastName": Telkikar}

    fileObj= request.vars.video
    studentActivity = fileObj.file.read()
    
    #Currently I am unable to do it from unit test, but it works from postman
    print(f"Student's Roll number = {payload.rollNo} \n FirstName = {payload.firstName},  \n lastName = {payload.lastName}, fileSize = {fileObj.file.tell()}")

    #storing studentActivity video to specific location
    #Doing business logic

现在我正在为此端点编写单元测试,我正在尝试使用requests 调用此端点,

import requests
import unittest

...
    
class TestStudentsData(unittest.TestCase):
    def test_Individual_student(self):
        payload = dict(rollNo=6299857, firstName="Prasad", lastName="Telkikar")
        url = "http://127.0.0.1:8000/v1/foobar"
        header = dict(Authorization="Bearer <Token>")
        response = requests.post(url,files={'studentActivity':open("Activity.mp4", 'rb')},  data=payload, headers=headers)

        self.assertEqual(response.status_code, 200)

if __name__ == '__main__':
    unittest.main(verbosity=2)

这里我无法将学生有效负载作为json 传递。

如何使用请求传递带有studentActivity 文件的json 有效负载?


到目前为止我尝试了什么?

【问题讨论】:

    标签: python python-requests python-unittest web2py pythonanywhere


    【解决方案1】:

    我通过在payload 中添加正确的content-type 解决了这个问题,

    import os
    
    ...
    
    filePath = os.getcwd()
    files = {'studentActivity':open(filePath, "Activity.mp4", 'rb'), 
                 'payload':(None, payload, 'application/json')}
                                           #^^^^^^^^^^^^^^^^^ This was missing
     
    response = requests.post(url,files={'studentActivity':open("Activity.mp4", 'rb')},  data=payload, headers=headers)
    

    【讨论】:

      猜你喜欢
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 2013-04-17
      • 2021-09-27
      • 1970-01-01
      相关资源
      最近更新 更多