1

我将 Tornado AsynchHTTPClient().fetch(url, method="POST",body=body,headers=headers)与协程一起使用,但抛出错误:

TypeError:预期的字节、unicode 或 None;得到类型'int'

    @gen.coroutine
    def do_post(self, url, data):
        self.checksum_builder()
        headers = {
            'AppKey': self.app_key,
            'Nonce': self.nonce,
            'CurTime': self.current_time,
            'CheckSum': self.checksum,
            'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
        }
        postdata = data
        http_client = AsyncHTTPClient()
        print urllib.urlencode(postdata)
        response = yield http_client.fetch(url, method='POST', headers=headers, body=urllib.urlencode(postdata))
        print response.error
        raise gen.Return(response)

    @gen.coroutine
    def create_nim_id(self, accid,  name='', props='', icon='', token=''):
        data = dict({
                'accid':accid,
                'name':name,
                'props':props,
                'icon':icon,
                'token':token
            })
        response = yield self.do_post(self.create_nim_id_url, data)
        raise gen.Return(response)




    @gen.coroutine
    def get(self, *args, **kwargs):

        result = yield netease_im_api.NeteaseAPI().create_nim_id(accid='moonmoonbird1',icon='2',props='321',token='adsadsadsadsd', name='hello')
        print(result)

,第 1014 行,在运行中 yielded = self.gen.throw(*exc_info) File "/Users/moonmoonbird/Documents/kuolie/kuolie/neteaseim/netease_im_api.py",第 60 行,在 do_post 响应 = yield http_client.fetch(url , method='POST', headers=headers, body=urllib.urlencode(postdata)) 文件“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/gen.py”,第 1008 行,在运行值 = future.result() 文件中“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/concurrent.py”,第 232 行,结果 raise_exc_info(self._exc_info) 文件"", line 3, in raise_exc_info TypeError: Expected bytes, unicode, or None; 得到类型 int body=urllib.urlencode(postdata)) 文件“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/gen.py”,第 1008 行,运行值 = future.result() 文件“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/concurrent.py”,第 232 行,结果 raise_exc_info(self._exc_info) 文件“”,第 3 行,在 raise_exc_info 类型错误:预期字节、unicode 或无;得到类型 int body=urllib.urlencode(postdata)) 文件“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/gen.py”,第 1008 行,运行值 = future.result() 文件“/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/concurrent.py”,第 232 行,结果 raise_exc_info(self._exc_info) 文件“”,第 3 行,在 raise_exc_info 类型错误:预期字节、unicode 或无;得到类型 int _exc_info) 文件“”,第 3 行,在 raise_exc_info 类型错误:预期字节、unicode 或无;得到类型 int _exc_info) 文件“”,第 3 行,在 raise_exc_info 类型错误:预期字节、unicode 或无;得到类型 int

我找不到我错的地方,有人可以帮助我,在此先感谢。

4

0 回答 0