Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan pos permintaan python

Cara menggunakan pos permintaan python

王林
王林ke hadapan
2023-04-29 16:52:061964semak imbas

    Python mensimulasikan penyemak imbas untuk menghantar permintaan siaran

    import requests

    Format request.post

    request.post(url, data, json, kwargs) # post请求格式
    request.get(url, params, kwargs) # 对比get请求

    Hantar permintaan siaran dan hantar parameter ke

    • Borang (x-www-form-urlencoded)

    • json (application/json)

    Parameter data menyokong format kamus dan format rentetan Untuk format kamus, gunakan kaedah json.dumps() untuk menukar data kepada rentetan format json yang sah Kaedah ini memerlukan pengimportan modul json

    import json
    json.dumps(data) # data转换成json格式

    parameter data kepada kaedah pos Parameter json mestilah dalam format json yang sah, jika tidak, ia akan menjadi sia-sia Jika terdapat nilai Boolean, ia mestilah huruf kecil dan tidak boleh mempunyai aksara bukan Unicode.

    Permintaan siaran berasaskan borang (x-www-form-urlencoded)

    import requests
    url = "https://editor.net/"
    data = {"key": "value"} # 字典 外层无引号
    resp = requests.post(url,data=data)
    print(resp.text)

    permintaan siaran jenis json

    import requests
    url = "https://editor.net/"
    data = '{"key": "value"}' # 字符串格式 
    resp = requests.post(url, data=data)
    print(resp.text)

    Gunakan format kamus untuk mengisi parameter dan tukar kepada json apabila menghantar Format

    (1) penukaran kaedah json.dumps()

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, data=json.dumps(data))
    print(resp.text)

    (2) Berikan data dalam format kamus kepada parameter json kaedah siaran

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, json=data)
    print(resp.text)

    python requests post Menyelesaikan beberapa masalah data

    Baru-baru ini, saya menggunakan Requests untuk membuat program kecil yang menghantar data secara automatik Saya menggunakan pustaka Requests Semasa penggunaan, saya mempunyai beberapa masalah dengan pengekodan data pos. dan saya perlu mencari banyak maklumat Akhirnya diselesaikan.

    Masalah urlencoding data pos

    Apabila kami biasanya menyiarkan data dict, permintaan akan urlencode data dalam dict dan kemudian menghantarnya.

    Tetapi saya mendapati bahawa urlencode yang dia gunakan ialah pengekodan UTF-8 secara lalai Bagaimana jika program tapak web saya hanya menyokong gb2312 urlencode?

    Anda boleh memperkenalkan urllib.parse.urlencode dalam urllib untuk pengekodan.

    from urllib.parse import urlencode
    import requests
     
    session.post('http://www.bac-domm.com',   data=urlencode({'val':'中国人民'}, encoding='gb2312'),  headers = head_content)

    Mengelakkan masalah data dikodkan

    Kadangkala kita tidak mahu data dikodkan dengan urlen, apakah yang perlu kita lakukan?

    Hanya gabungkan ia ke dalam rentetan dalam data pos Sudah tentu, anda harus memberi perhatian kepada pengekodan rentetan apabila menyambung Contohnya, jika ia mengandungi bahasa Cina, anda harus menetapkan pengekodan kepada utf-8 atau gb2312

    Atas ialah kandungan terperinci Cara menggunakan pos permintaan python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam