python 实现 SSL HTTP 以及 Basic Auth 的接口请求与 web服务端的webapi实现

访问端

from urllib.parse import urlencode
import base64
import json
import urllib.request
import ssl

ssl._create_default_https_context = ssl._create_unverified_context


def get(api,user,password):     
    auth=" Basic "+base64.b64encode(("%s:%s" % (user,password)).encode()).decode()
    req=urllib.request.Request(url=api,headers={"Authorization":auth},method="GET")
    req=urllib.request.urlopen(req)
    res=req.read()
    res=json.loads(res)
    return res

django 服务端
 

def login(request:HttpRequest):
    if 'HTTP_AUTHORIZATION' in request.META:
        auth = request.META.get('HTTP_AUTHORIZATION').split()
        if len(auth) == 2:
            # NOTE: We are only support basic authentication for now.
            #
            if auth[0].lower() == "basic":
                print("type %r auth1: %r" % (type(auth[1]), auth[1]))
                user, passwd = base64.b64decode(auth[1]).decode().split(':')
                return HttpResponse("user:%s, password:%s" %(user,passwd))
    else:
        return HttpResponse("Auth Fail")

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值