请求api接口所遇问题

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了在请求API接口时遇到的几个典型问题及其解决方案,包括NotImplementedError的修复、处理JSONDecodeError错误,理解urllib2.Request参数及如何正确解码urlopen返回的响应内容。
摘要由CSDN通过智能技术生成

1、NotImplementedError

import tornado.ioloop
import tornado.web
import tornado.httpserver

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, Nowamagic")


application = tornado.web.Application([(r"/", MainHandler)])
# httpServer = tornado.httpserver.HTTPServer(application)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()

解决方法:

https://ask.csdn.net/questions/1054691

找到tornado/platform/asyncio.py 文件
在文件里面加上

import sys
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

2、json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

import json
import tornado.httpclient

http_client = tornado.httpclient.HTTPClient()
try:
    response = http_client.fetch("https://news-at.zhihu.com/api/4/news/latest")
    # print(response.body)
except httpclient.HTTPError as e:
    print("Error:", e)
http_client.close()

调用url出来的数据是bytes类型,想变成json类型,先转换成str,然后再转换成json发现有报错

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

经过查找发现是,没有转换成 utf-8 编码

data_str = str(data.decode(encoding='utf-8'))

转换后即可

 

3. urllib2.Request(url,head,data) 内部参数

head :dict类型

data :str类型,同时,发起请求所含的必要参数应当在当中。如同postman中的body一样。

4. urlopen()获取页面,返回类型为bytes,需要用decode解码,转换成str类型

微信小程序请求百度API接口的代码通常可以分为以下几个步骤: 1. 在小程序的配置文件app.json中注册百度API接口的域名。在"my"字段下添加"request"字段,并在列表中填入百度API的域名,例如:"https://api.baidu.com"。 2. 在小程序的页面中通过wx.request方法发起请求。首先,需要在小程序页面的js文件中引入wx.request方法。然后,可以使用wx.request方法来发送请求,具体代码如下: ```javascript wx.request({ url: 'https://api.baidu.com/your_api_path', // 你要请求的百度API接口地址 data: { // 若有参数,可通过data字段传递给API接口 param1: value1, param2: value2 }, header: { 'Content-Type': 'application/json' // 根据实际情况设置header信息 }, method: 'GET', // 根据API接口要求设置请求方式 success: function (res) { // 请求成功后的处理逻辑 console.log(res.data) }, fail: function (res) { // 请求失败后的处理逻辑 } }) ``` 3. 根据百度API接口的要求来设置请求参数和请求头信息。可以通过data字段来传递请求参数,通过header字段来设置请求头信息。根据API接口的要求设置正确的Content-Type,并选择适当的请求方式(GET、POST等)。 4. 处理请求成功和失败的回调函数。在success字段中可以编写请求成功后的处理逻辑,在fail字段中可以编写请求失败后的处理逻辑。可以根据需要对返回的数据进行处理和展示。 需要注意的是,在使用百度API接口前,需要先申请相关的密钥或授权,并按照官方文档提供的要求进行接口调用。以上是一个简单的示例,具体使用方式根据实际情况可能有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值