urllib3

ภาพหน้าจอของซอฟแวร์:
urllib3
รายละเอียดซอฟแวร์:
รุ่น: 1.5
วันที่อัพโหลด: 20 Feb 15
ผู้พัฒนา: Andrey Petrov
การอนุญาต: ฟรี
ความนิยม: 2

Rating: nan/5 (Total Votes: 0)

urllib3 เป็นห้องสมุด HTTP หลามที่มีการเชื่อมต่อร่วมด้ายปลอดภัยและการสนับสนุนโพสต์ไฟล์
ไฮไลท์:
& nbsp; * Re-ใช้การเชื่อมต่อซ็อกเก็ตเดียวกันสำหรับการร้องขอหลาย (HTTPConnectionPool)
& nbsp; * โพสต์ไฟล์ (encode_multipart_formdata)
& nbsp; * Built-in และการเปลี่ยนเส้นทางการลอง (ถ้ามี)
& nbsp; * Thread ปลอดภัย
อะไรผิดปกติกับ urllib และ urllib2?
มีสองคุณสมบัติที่สำคัญขาดหายไปจากห้องสมุดมาตรฐานงูใหญ่คือการเชื่อมต่ออีกครั้งโดยใช้ / ร่วมกันและโพสต์ไฟล์ มันไม่ใช่เรื่องยากชะมัดในการดำเนินการเหล่านี้เอง แต่มันเป็นเรื่องง่ายมากที่จะใช้โมดูลที่มีอยู่แล้วได้ทำงานสำหรับคุณ
ห้องสมุดมาตรฐานหลาม urllib และ urllib2 มีน้อยจะทำอย่างไรกับคนอื่น ๆ พวกเขาถูกออกแบบมาให้เป็นอิสระและแบบสแตนด์อโลนแต่ละแก้ขอบเขตที่แตกต่างกันของปัญหาและ urllib3 ต่อไปนี้ในทำนองเดียวกัน
ทำไมฉันต้องการที่จะใช้การเชื่อมต่อ
การปฏิบัติ เมื่อคุณทำตามปกติโทร urllib การเชื่อมต่อซ็อกเก็ตที่แยกต่างหากถูกสร้างขึ้นด้วยแต่ละคำขอ โดยการนำซ็อกเก็ตที่มีอยู่ (ได้รับการสนับสนุนตั้งแต่ HTTP 1.1) การร้องขอจะใช้ทรัพยากรน้อยลงในตอนท้ายของเซิร์ฟเวอร์และยังให้การตอบสนองที่รวดเร็วในตอนท้ายของลูกค้า กับบางมาตรฐานง่าย (ดูการทดสอบ / benchmark.py) ดาวน์โหลด 15 URL จาก google.com เป็นเรื่องเกี่ยวกับสองครั้งที่รวดเร็วเมื่อใช้ HTTPConnectionPool (ซึ่งใช้การเชื่อมต่อ 1) กว่าการใช้ urllib ธรรมดา (ซึ่งใช้การเชื่อมต่อ 15)
ห้องสมุดนี้เหมาะสำหรับ:
& nbsp; * พูดคุยกับ API
& nbsp; * รวบรวมข้อมูลเว็บไซต์
& nbsp; * สถานการณ์ใด ๆ ที่ความสามารถในการโพสต์ไฟล์, การเปลี่ยนเส้นทางการจัดการและลองใหม่จะเป็นประโยชน์ มันเป็นเรื่องที่ค่อนข้างมีน้ำหนักเบาเพื่อที่จะสามารถนำมาใช้เพื่ออะไร!
ตัวอย่าง:
ไปที่วิกิพีเดียตัวอย่างตัวอย่างไวยากรณ์เน้นความสุขมากขึ้น
แต่เรื่องยาวสั้น:
จากการนำเข้า urllib3 HTTPConnectionPool
API_URL = 'http://ajax.googleapis.com/ajax/services/search/web'
http_pool = HTTPConnectionPool.from_url (API_URL)
สาขา = {'V': '1.0', 'Q': 'urllib3'}
r = http_pool.get_url (API_URL เขตข้อมูล)
พิมพ์ r.status, r.data

มีอะไรใหม่ ในข่าวประชาสัมพันธ์นี้:

  • เพิ่ม urllib3.add_stderr_logger () ได้อย่างรวดเร็ว ช่วยให้การเข้าสู่ระบบ STDERR แก้ปัญหาใน urllib3.
  • แยก URL แบบเต็มพื้นเมือง (รวมถึงการรับรองความถูกต้องเส้นทางแบบสอบถามส่วน) ที่มีอยู่ใน urllib3.util.parse_url (URL).
  • Built-in เปลี่ยนเส้นทางจะเปลี่ยนวิธีการที่จะ 'ได้รับ' ถ้ารหัสสถานะเป็น 303. (ฉบับที่ 11)
  • urllib3.PoolManager แถบโครงการและโฮสต์คลับก่อนที่จะส่งคำขอ (ฉบับที่ 8)
  • ข้อยกเว้นใหม่ urllib3.exceptions.DecodeError เมื่อถอดรหัสอัตโนมัติขึ้นอยู่กับส่วนหัวของเนื้อหาชนิดล้มเหลว.
  • แก้ไขข้อผิดพลาดที่มีการสูญเสียสระว่ายน้ำและการเชื่อมต่อการรั่วไหล (ฉบับที่ 76) เพิ่มการปิดการเชื่อมต่ออย่างชัดเจนในการขับไล่สระว่ายน้ำ เพิ่ม urllib3.PoolManager.clear ().
  • 99% - & gt; ครอบคลุมการทดสอบหน่วย 100%.

มีอะไรใหม่ ในรุ่น 1.4:.

  • ไมเนอร์แก้ไข AppEngine ที่เกี่ยวข้อง
  • Switched จาก mimetools.choose_boundary เพื่อ uuid.uuid4 ().
  • แยก url ปรับปรุง (ฉบับที่ 73)
  • IPv6 สนับสนุน url (ฉบับที่ 72)

มีอะไรใหม่ ในรุ่น 1.3:.

  • เอาออกก่อน 1.0 เลิก API
  • ช่วยเหลือ refactored เป็น urllib3.util submodule.
  • การเข้ารหัสแบบหลายคงที่ให้การสนับสนุนรายการของ tuples สำหรับคีย์ที่มีค่าหลายค่า (ฉบับที่ 48)
  • ส่ว​​นหัวหลายคุกกี้ชุดคงที่ในการตอบสนองไม่ได้รับการควบรวมกิจการอย่างถูกต้องในหลาม 3. (ฉบับที่ 53)
  • การสนับสนุน AppEngine กับ Py27 (ฉบับที่ 61)
  • ไมเนอร์แก้ไข encode_multipart_formdata ที่เกี่ยวข้องกับงูใหญ่ 3 สาย vs ไบต์.

มีอะไรใหม่ ในรุ่น 1.2.2:

  • ข้อผิดพลาดบรรจุภัณฑ์คงไม่จัดส่งความต้องการทดสอบ TXT (ฉบับที่ 47)

มีอะไรใหม่ ในรุ่น 1.2.1:

  • แก้ไข bug อื่นที่เกี่ยวข้องกับการเมื่อโมดูล SSL ไม่ได้ ใช้ได้ (ฉบับที่ 41)
  • ที่ตั้งข้อผิดพลาดในการแยกวิเคราะห์ในขณะนี้เพิ่ม urllib3.exceptions.LocationParseError ซึ่งสืบทอดจาก ValueError.

มีอะไรใหม่ ในรุ่น 1.2:

  • เพิ่มหลาม 3 ฝ่ายสนับสนุน (ทดสอบบน 3.2.2)
  • ลดหลาม 2.5 สนับสนุน (ทดสอบบน 2.6.7, 2.7.2)
  • select.poll ใช้แทน select.select สำหรับแพลตฟอร์มที่สนับสนุนมัน.
  • ใช้ Queue.LifoQueue แทน Queue.Queue สำหรับ reusing การเชื่อมต่อเชิงรุกมากขึ้น สามารถกำหนดค่าโดยเอาชนะ ConnectionPool.QueueCls.
  • คง importerror ระหว่างการติดตั้งเมื่อโมดูล SSL จะไม่สามารถใช้ได้ (ฉบับที่ 41)
  • คง PoolManager เปลี่ยนเส้นทางระหว่างรูปแบบ (เช่น HTTP - & gt; HTTPS) ได้เสร็จสิ้นการอย่างถูกต้อง (ฉบับที่ 28 การป้องกันโดยรุ่นที่ 10 ใน v1.1)
  • รังเพลิง dummyserver พายุทอร์นาโดที่จะใช้แทน webob + eventlet ลบออกทดสอบ dummyserver ได้รับการสนับสนุนจากภายนอกแบ็กเอนด์ เพิ่มการทดสอบซ็อกเก็ตระดับ.
  • การทดสอบเพิ่มเติม ปลดล็อคความสำเร็จ. 99% ครอบคลุม

มีอะไรใหม่ ในรุ่น 1.1:

  • refactored dummyserver โมดูล namespace รากของตัวเอง (ใช้สำหรับการทดสอบ ).
  • การตรวจสอบชื่อโฮสต์เพิ่มเข้ามาสำหรับ VerifiedHTTPSConnection โดย vendoring ใน ssl_match_hostname Py32 ของ (ฉบับที่ 25)
  • คง HTTP ข้ามโฮสต์เปลี่ยนเส้นทางเมื่อใช้ PoolManager (ฉบับที่ 10)
  • decode_content คงถูกละเว้นเมื่อตั้งค่าผ่าน urlopen (ฉบับที่ 27)
  • แก้ไขข้อบกพร่องที่เกี่ยวข้องกับการหมดเวลา (ประเด็น # 17, # 23)

มีอะไรใหม่ ในรุ่น 1.0.2:

  • typo ถาวรใน VerifiedHTTPSConnection ซึ่งจะนำเสนอเป็นเพียง ข้อผิดพลาดถ้าคุณใช้วัตถุด้วยตนเอง (ขอขอบคุณ pyos)
  • ทำ RecentlyUsedContainer (และดังนั้น PoolManager) มากขึ้นด้ายปลอดภัยโดยการตัดเข้าสู่ระบบการเข้าถึงใน mutex (ขอขอบคุณ @christer)
  • ทำ RecentlyUsedContainer เพิ่มเติม Dict เหมือน (__delitem__ แก้ไขและพฤติกรรม __getitem__) กับการทดสอบ ไม่ควรส่งผลกระทบต่อรหัส urllib3 หลัก.

มีอะไรใหม่ ในรุ่น 1.0.1:

  • แก้ไข bug ที่เชื่อมต่อเดียวกันจะได้รับกลับมา สระว่ายน้ำเป็นครั้งที่สองทำให้ภายนอก & quot; HttpConnectionPool เต็มไป & quot; คำเตือนเข้าสู่ระบบ.

ต้องการ

  • หลาม

ซอฟแวร์อื่น ๆ ของนักพัฒนา Andrey Petrov

urllib3
urllib3

12 May 15

ความคิดเห็นที่ urllib3

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!