Saya memiliki URI permintaan dan token. Jika saya menggunakan:
curl -s "<MY_URI>" -H "Authorization: TOK:<MY_TOKEN>"
dll., Saya mendapatkan 200 dan melihat data JSON yang sesuai. Jadi, saya menginstal permintaan dan ketika saya mencoba mengakses sumber ini saya mendapatkan 403 mungkin karena saya tidak tahu sintaks yang benar untuk meneruskan token itu. Adakah yang bisa membantu saya mengetahuinya? Inilah yang saya miliki:
import sys,socket
import requests
r = requests.get('<MY_URI>','<MY_TOKEN>')
r. status_code
Saya sudah mencoba:
r = requests.get('<MY_URI>',auth=('<MY_TOKEN>'))
r = requests.get('<MY_URI>',auth=('TOK','<MY_TOKEN>'))
r = requests.get('<MY_URI>',headers=('Authorization: TOK:<MY_TOKEN>'))
Tapi tidak satupun dari ini berhasil.
Saya sedang mencari sesuatu yang serupa dan menemukan ini . Sepertinya di opsi pertama yang Anda sebutkan
r = requests.get('<MY_URI>', auth=('<MY_TOKEN>'))
"auth" membutuhkan dua parameter: nama pengguna dan kata sandi, jadi pernyataan sebenarnya haruslah
r=requests.get('<MY_URI>', auth=('<YOUR_USERNAME>', '<YOUR_PASSWORD>'))
Dalam kasus saya, tidak ada kata sandi, jadi saya membiarkan parameter kedua di bidang auth kosong seperti yang ditunjukkan di bawah ini:
r=requests.get('<MY_URI', auth=('MY_USERNAME', ''))
Semoga ini bisa membantu seseorang :)
sumber
r = requests.get('<MY_URI>',auth=('<MY_TOKEN>'))
, Anda akan mendapatkanTypeError: 'str' object is not callable
. yang membuat saya bingung untuk sementara waktu sampai saya menemukan ini: /Ini berhasil untuk saya:
access_token = #yourAccessTokenHere# result = requests.post(url, headers={'Content-Type':'application/json', 'Authorization': 'Bearer {}'.format(access_token)})
sumber
Anda juga dapat menyetel header untuk seluruh sesi:
TOKEN = 'abcd0123' HEADERS = {'Authorization': 'token {}'.format(TOKEN)} with requests.Session() as s: s.headers.update(HEADERS) resp = s.get('http://example.com/')
sumber
Permintaan secara native mendukung autentikasi dasar hanya dengan parameter user-pass, bukan dengan token.
Anda dapat, jika ingin, menambahkan kelas berikut untuk meminta dukungan otentikasi dasar berbasis token:
import requests from base64 import b64encode class BasicAuthToken(requests.auth.AuthBase): def __init__(self, token): self.token = token def __call__(self, r): authstr = 'Basic ' + b64encode(('token:' + self.token).encode('utf-8')).decode('utf-8') r.headers['Authorization'] = authstr return r
Kemudian, untuk menggunakannya jalankan permintaan berikut:
Alternatifnya adalah dengan merumuskan tajuk khusus, seperti yang disarankan oleh pengguna lain di sini.
sumber
saya didirikan di sini, tidak apa-apa dengan saya untuk linkedin: https://auth0.com/docs/flows/guides/auth-code/call-api-auth-code jadi kode saya dengan login linkedin di sini:
ref = 'https://api.linkedin.com/v2/me' headers = {"content-type": "application/json; charset=UTF-8",'Authorization':'Bearer {}'.format(access_token)} Linkedin_user_info = requests.get(ref1, headers=headers).json()
sumber
Anda bisa mencoba sesuatu seperti ini
r = requests.get(ENDPOINT, params=params, headers={'Authorization': 'Basic %s' % API_KEY})
sumber
Ini berhasil untuk saya:
r = requests.get('http://127.0.0.1:8000/api/ray/musics/', headers={'Authorization': 'Token 22ec0cc4207ebead1f51dea06ff149342082b190'})
Kode saya menggunakan token yang dibuat pengguna.
sumber