TCPăăŠăłăśăŻăˇă§ăłăă¨ăŽăżă¤ă ă˘ăŚăăč¨ĺŽă§ăătimeoutăăŠăĄăźăżăăă§ăŤć´ťç¨ăăŚăăžăă ăăăŻă¨ăŚă彚ăŤçŤăĄăžăďź ăă ăăćĽçśĺ ¨ä˝ăŽĺ ¨ä˝çăŞăżă¤ă ă˘ăŚăăăľăăźăăăĺż čŚăăăăžăă ăżă¤ă ă˘ăŚăăŤé˘ăăăăăĽăĄăłăăčŞăă¨ăăăăŻçžĺ¨ăľăăźăăăăŚăăŞăăă¨ăăăăăžăăĺ°ăŞăă¨ăĺ°ăĺăŤĺéĄăć¤ç´˘ăăŚăăăăŽćŠč˝ăŤĺŻžăăĺĽăŽăŞăŻă¨ăšăăŻčŚă¤ăăăžăăă§ăăăăăżăžăăă
ăăăĺŽçžăăăăăŤăŠă¤ăăŠăŞăŤăżă¤ăăźăč¨ĺŽă§ăăăă¨ăŻăăăŁăŚăăžăăăčż˝ĺ ăŽăŞăźăăźăăăďźăšăŹăăăă¨ăŤ1ă¤ăĺ¤ăăŽĺ ´ĺăăăăžăďźă¨ăćĽçśăăźăŤăä¸ć˘ăăĺż čŚăçăăĺ ´ĺăŽćŞĺ˝ąéżăŤă¤ăăŚć¸ĺżľăăŚăăžăăăŞăŻă¨ăšăă ăăăăăŞăŻă¨ăšăăä¸ć˘ăăčŻăćšćłăŻăăăžăăďź ăăăĽăĄăłăăŤćăăăŞăăŽăŻä˝ăăăăžăăă§ăăă
ă¤ăžăăéˇćçăŤăŻăăŞăŻă¨ăšăăŠă¤ăăŠăŞăŤĺ ¨ä˝çăŞăżă¤ă ă˘ăŚăăčż˝ĺ ă§ăăă°ç´ ć´ăăăă¨ćăăžăă çćçăŤăŻăăăăç§ăŽĺ´ă§ĺŽčŁ ăăăăăŽć¨ĺĽ¨ăăăćšćłăŻăăăžăăďź
ăăăŤăĄăŻ@ emgerner-msftă
ĺčăžă§ăŤăăăŽćŁç˘şăŞćŠč˝čŚćąă§ăŻăŞăĺ ´ĺă䝼ä¸ăŻăăŽăăźăăŽăăšăŚăŽăăŞă¨ăźăˇă§ăłă§ăă
ăăăŤă¤ăăŚăŻă httpsďź//github.com/sigmavirus24/requests-toolbelt/issues/51ă§ă誏ćăăŚăăžăă
ćĺžăŽăŞăłăŻă§ăăŽăăăąăźă¸ăŤă¤ăăŚčŞŹćăăŚăăăă¨ăŤć°äťăă§ăăăăăăŽăăăąăźă¸ăŻăăŞăŻă¨ăšăăŤčż˝ĺ ăăăŤăăăĺŚçăăĺż čŚăăăăžăă çžĺŽăŤăŻăĺĽăŽăăăąăźă¸ăăă§ăŤé常ăŤăăžăćŠč˝ăăŚăăĺ ´ĺăŻăăăăĺŽčĄăăăăăŤčŚćąăăĺż čŚăŻăăăžăăă
ĺç §ăăăăăąăźă¸ăŻăWebăŞăŻă¨ăšăăĺŽčĄăăăăăŽĺĽăŽăăăťăšăăăŠăźăŻăăăă¨ăŤăăŁăŚăăăčĄăăžăă ăăăŻăăżă¤ă ă˘ăŚăă¨ăăĺç´ăŞçŽć¨ăéćăăăăăŽé常ăŤéčŚăŞćšćłă§ăăăç§ăŽčŚč§Łă§ăŻăăă¤ăăŁăăŽăżă¤ă ă˘ăŚăćŠč˝ăĺăăăŞăŻă¨ăšăčŞä˝ăŤäťŁăăăăŽă§ăŻăăăžăăă
@jribbensăšăŹăăăăăăťăšă使ç¨ăăŞăćšćłăćăäťăăă¨ăă§ăăă°ăăăăŻç´ ć´ăăăăă¨ă§ăă ăăăžă§ăŻăĺŁćăćč¨ăŽăżă¤ă ă˘ăŚăăĺż čŚăŞĺ ´ĺăŻăçžćçšă§ăăăéćăăăăăŽćăäżĄé źă§ăăćšćłă§ăăăăăąăźă¸ăćĺăŽçă§ăă
@jribbensăăšăŹăăăăăăťăšăč¨ăŁăŚăăŞăă¨ćăăžăă ăăăťăš_per_WebăŞăŻă¨ăšăăéĺ°ă§ăăă¨ăăă ăă§ăă ĺ¤ăăŽč¨čŞăŤăŻăĺä¸ăŽčż˝ĺ ăŽăšăŹăăăžăăŻăăăťăšăĺ ąćăăč¤ć°ăŽăżă¤ăăźăŽćšćłăăăăžăă ç§ăŻPythonă§ăăăćăăăčĄăćšćłăçĽăăŞăă ăă§ăă
ďź1928ă䝣ćżćĄăŤă¤ăăŚćăĺ¤ăč°čŤăăăŚăăăăă§ăăăăťă¨ăăŠăŽĺ ´ĺăĺ¤ăăŽćł¨ćäşé ăăăăžăďźăăăŻăăŚăźăšăąăźăšăŞăŠă§ăŻćŠč˝ăăžăăďźă ăŠă¤ăăŠăŞăŤăŤăšăżă ăłăźăăĺ ĽăăŚăăăăćŹĺ˝ăŤăŞăŻă¨ăšăăŤĺąăăŚăăŞăĺ ´ĺăŻçŹčŞăŽăŤăšăżă ă˝ăŞăĽăźăˇă§ăłăä˝ćăăŚăĺéĄăăăžăăăăăăăăŠăŽăăăŤăŞăăăŤă¤ăăŚăăĺ°ăć ĺ ąăĺż čŚă ă¨ćăăžăă ăŞăŻă¨ăšăă使ç¨ăăççąăŻăăšăŚăä˝ăŹăăŤăŽTCPćĽçśăăźăŤăă¸ăăŻăăé˘ăăăăă§ăăăăăŽăŤăšăżă ăłăźăăä˝ćăăăŤăŻăăăŽăă¸ăăŻăçĽăĺż čŚăăăăšăŹăăăčŞăă§ăăăăă§ăăăăăĺéĄăŤăŞăŁăŚăăžăă ă
@ emgerner-msftăŻćŁăăă§ăă @ sigmavirus24ăŽăłăĄăłăăŤĺ°ă桡䚹ăăŚăăžăăăšăŹăăăăăăťăšă使ç¨ăăăŤăĺŽĺ
¨ăŞăżă¤ă ă˘ăŚăăăč¨ĺŽăăă¨ăăăŞăćŠčĄč
ăŽăăăŤčŚăăăžăŁăăăéŠăăšăăăă¨ă§ăŻăăăžăăă ăăăťăšĺ
¨ä˝ăŽéĺ§ćăŤćéăč¨çŽăďźäžďź deadline = time.time() + total_timeout
ďźăĺă
ăŽćä˝ă§ăżă¤ă ă˘ăŚăădeadline - time.time()
ăŤč¨ĺŽăăžăă
ăšăŹăăăăăăťăšă使ç¨ăăăŤăĺŽĺ ¨ăŞăżă¤ă ă˘ăŚăăăč¨ĺŽăăăă¨ăŻăé常ăŤćŠčĄč ăŽăăă§ăăăăžăŁăăăéŠăăšăăăă¨ă§ăŻăăăžăăă
ăăăŚăăăŞăăŽč§ŁćąşçăŻăăŞăĺĺ§çă§ăă ăťă¨ăăŠăŽäşşăĺč¨ďźăžăăŻăŚăŠăźăŤăŻăăăŻďźăżă¤ă ă˘ăŚăăĺż čŚă¨ăăççąăŻăčŞăżĺăăăăăłă°ăăăŞăăăăŤăăăăă§ăăă¤ăžăă揥ăŽăăăŞĺ ´ĺă§ăă
r = requests.get(url, stream=True)
for chunk in r.iter_content(chunksize):
process_data(chunk)
iter_content
ăŽéä¸ă§ĺčŞăżĺăăŤéˇăćéăăăăăăčŞăżĺăăżă¤ă ă˘ăŚăăăăçăĺ ´ĺďźăšăăŞăźăăłă°ćăŤéŠç¨ăăă¨ćłĺŽăăŚăăžăăăăăă§ăŞăĺ ´ĺăăăăžăďźăćĺŽăăžăăă 確ăăŤăăăăŻăćč¨ăăŠăŽăăăŤăăŞăăăăĺ¤ćéăăŠăŽăăăŤćŠč˝ăăăăćăĺşăăăăăăŽtime.time()
ăă˛ăŠăä¸ĺĺă§ăăăžă§ăă˝ăŞăĽăźăˇă§ăł@jribbensăŤăăŁăŚĺç´ăŤĺŚçăăăăšăă§ăăăăăŤćăăăžăă
ćĺžăŤăRequestsăŽAPIăăăŞăźăşăăŚăăăă¨ăčŚăăŚăăăă¨ăéčŚă§ăă ĺč¨ăżă¤ă ă˘ăŚăăćĺŽăăăăăŽéŠĺă§ä¸č˛Ťć§ăŽăăAPIăŻăăăžăăă ăăăŚăăăŞăăććĄăăăăăŤăżă¤ă ă˘ăŚăăĺŽčŁ ăăĺ ´ĺăĺč¨ăżă¤ă ă˘ăŚăă1ĺéćĺŽăăă¨ăăăă°ăçĄć°ăŤăăăžăăăĺĺăă§ăăŻăăă¨ăăŤ1ĺćŞćşă§ăăăăć§ćăăăčŞăżĺăăżă¤ă ă˘ăŚăăăżă¤ă ă˘ăŚăăŤăŞăăťăŠéˇăăăăćéăăăăăžăăă¨ăŠăźăŻç´1ĺĺă§çşçăăžăăă ăăăŻ_é常ăŤ_大ăžăăŞĺŁăŽăżă¤ă ă˘ăŚăă§ăăăăăăć˘ăăŚăăäşşăŤă¨ăŁăŚăŻĺ°ăčŻăă§ăăăăăăăăčŞĺă§ĺŽčŁ ăăŚăăäşşă¨ĺăă§ăă
çłă訳ăăăžăăăă @ sigmavirus24ăä¸ćăŞĺ ´ĺăŻăç§ăŽçäźźăłăźăăŽĺçăŽĺłăăćĺéăăŽăăăă ă¨ćăŁăŚăăăăŽăăăŤćšĺ¤ăăŚăăăăă§ăă ăă ăă time.time()
ăŻăčŚăçŽăŠăăăŤćŠč˝ăăŞăăă¨ăććăăŚăăĺż
čŚăăăăžăăĺ¤ćéăŻé˘äżăăăžăăăăžăăăăă§čŞŹćăăŚăăăżă¤ă ăšăąăźăŤăŽăŻăăăŻăšăăĽăźăé˘äżăăăžăăă ăžăă誏ćăăăă°ăçşçăăă¨ćăăăĺ ´ĺăŻăććĄă誤解ăăŚăăžăă ćĺžăŤăAPIăăăźă¸ă§ăł2.9.0ă¨ĺăăăăćčżĺ¤ć´ăăăăăăRequests APIăăĺçľăăăăŚăăă¨ăŻăŠăăăćĺłăăăăăžăăăăăŽăăăç§ăé常ç解ăăŚăăăă¨ă¨ăŻç°ăŞăăžăă
ç§ăŽč°čŤăĺé˘ăăăăă ăăŤďźç§ăŻĺŽéăăăăç°Ąĺă§ăăă¨ä¸ťĺźľăăŚăăăăă§ăŻăăăžăăă ăăăĺŽĺ ¨ăŤĺç´ă§ăăăŞăă°ăç§ăŻăăăć¸ăăŚăăăŞăăćŠăžăăŽăăăăžăă :)
ç§ăŽĺéĄăŻćŹĄăŽă¨ăăă§ăă
1ďźăŞăšăăăăšăŹăăăŽăăšăŚăă˘ăłăăźăăăă§ăăă ăăăŻĺéĄăăăžăăăăç§ăŻăăăćŹçŞĺ質ăŽăŠă¤ăăŠăŞă§ä˝żç¨ăăŚăăăăăšăŚăĺŁăĺ
é¨ĺ¤ć´ăŽčŚĺăĺăĺăăă¨ăŻă§ăăžăăă
2ďźăăŞăăä¸ăăăŞăłăŻăŽăżă¤ă ă˘ăŚăăăłăŹăźăżăŻç´ ć´ăăăă§ăăăăăăćĽçśăŤăŠăŽăăăŤĺ˝ąéżăăăăŻăăăăžăăă ăżă¤ă ă˘ăŚăăĺŽčĄăăĺŻä¸ăŽčŻăćšćłăĺ¤ć°ăŽăšăŹăăă使ç¨ăăăă¨ă§ăăă¨čŞăăă¨ăăŚăăăăŽăŠă¤ăăŠăŞăŻăă˝ăąăăăŽăˇăŁăăăăŚăłăćĽçśăŽĺćăŞăŠăăŠăŽăăăŤĺźˇĺśăăžăăăĺ¤ăăŽćĽçśăĺŽčĄăăŚăăăăăăŻć˝ĺ¨çăŤăăŞăăŽăăă§ăăćźăăăăă ăŞăŻă¨ăšăăŤăŻç§ăčŚă¤ăăăă¨ăă§ăăăabortăăĄă˝ăăăăăăžăăďźç§ăééăŁăŚăăĺ ´ĺăŻäżŽćŁăăŚăă ăăďźăŽă§ăćĽçśăŽăˇăŁăăăăŚăłăŻăŠăŽăăăŤçşçăăžăăďź
ç§ăć˘ăăŚăăăŽăŻăăăŽĺéĄăčŞĺă§č§ŁćąşăăćšćłăŽć確ăŞăçĽçŚăăăăăăźă¸ă§ăłă§ăăĺŽç§ăŞč§ŁćąşçăăŞăĺ ´ĺăŻă注ćäşé ăĺŤăăăă¤ăăŽč§ŁćąşçăŤă¤ăăŚčŞŹćăăžăă ăăăŻçăŤăăŞăŁăŚăăžăăďź
@ emgerner-msft CPythonă使ç¨ăăŚăăă¨ăăă¨ăăŞăŻă¨ăšăăçśčĄăăăŞăăŞăă¨ćĽçśăăˇăŁăăăăŚăłăăžăă ăăŽćçšă§ăĺşăŤăŞăćĽçśă¸ăŽăăšăŚăŽĺç §ă夹ăăăă˝ăąăăăéăăăăŚç ´ćŁăăăžăă
@Lukasaăăăăžăăăăăăă¨ăďź ăŠă¤ăăŠăŞăŻăăŞăŻă¨ăšăăçśçśăăăŞăăŞăŁăăă¨ăăŠăŽăăăŤĺ¤ćăăžăăďź ăă¨ăă°ăăżă¤ă ă˘ăŚăăăłăŹăźăżăŤăźăă使ç¨ăăŚăăŚăłăăźăăŽéä¸ă§ĺćăăĺ ´ĺăăăŚăłăăźăăŻĺŽéăŤăă¤ĺć˘ăăžăăďź ăšăăŞăźăăłă°ăŞăăˇă§ăłă§ä˝ăçšĺĽăŞăă¨ăăăĺż čŚăăăăžăăďź
ăżă¤ă ă˘ăŚăăăłăŹăźăżă使ç¨ăăĺ ´ĺăăżă¤ă ă˘ăŚăăçşçăăă¨ăăŚăłăăźăăĺć˘ăăžăă ăăăŻăăˇă°ăăŤăsyscallăä¸ćăăăăă§ăăăăăŻăă˝ăąăăă¸ăŽăă䝼ä¸ăŽĺźăłĺşăăăŞăăă¨ăćĺłăăžăă ăŞăŻă¨ăšăăăšăłăźăĺ
ăŤăŞăăŞăă¨ďźăă¨ăă°ăăšăżăăŻărequests.*
é˘ć°ăŽĺ¤ĺ´ăŤĺˇťăćťăăăă¨ďźă揥ăŽăăăŤăŞăăžăăCPythonăŻćĽçśăŞăă¸ă§ăŻăăăŻăŞăźăłă˘ăăăăćĽçśăĺćăăžăă ăăă§ăŻçšĺĽăŞăšăăŞăźăăłă°ăŞăăˇă§ăłăŻĺż
čŚăăăžăăă
ĺŽĺ ¨ă äťăŽäşşăăăŁă¨č¨ăăă¨ăăŞăéăăç§ăŻăăŽćăšăŹăăăéăăăŽăŻčŻăăă¨ă§ăă
ĺŽéăçłă訳ăăăžăăăăăă1ă¤ć¸ĺżľăăăăžăă Pythonăżă¤ăăźăŽăăăŞăăŽďźăăăăďźă¨ăŻĺŻžç §çăŤăăˇă°ăăŤă使ç¨ăăăă¨ăéŠĺă§ăăă¨ăăŞăăč¨ăŁăăŽă§ăăżă¤ă ă˘ăŚăăăłăŹăźăżăłăźăăăă芳ăă調ăšăŚăăžăăă Windowsă§ăŻĺä˝ăăŞăăăăŤPythonSignalăŤč¨čźăăăŚăăSIGALRMă§signalăĺźăłĺşăăŚăăăăă§ăă ăăăŻăUnixç°ĺ˘ă¨Windowsç°ĺ˘ăŽä¸ĄćšăăăăłPython 2.7ă¨3.3䝼éďźăŞăŻă¨ăšăčŞä˝ă¨ĺăăăăŤďźă§ćŠč˝ăăăăăŤĺż čŚă§ăă ăăĺ°ă芳ăăčŚăŚăăăăĺŽéăŤćŠč˝ăăăăŠăăă確čŞăăžăă
@ emgerner-msftăăăŻă¤ăŠă¤ăŠăăžăă =ďź
@LukasaăăăĺşćŹçăŞä˝żç¨ćłăšăăăăă芌ăăžăăăăWindowsă§ăŻćŠč˝ăăžăăă ăłăźă/äžăăăĺ°ăčŞăă§ăăăăĺăăžăăăăˇă°ăăŤă使ç¨ăăŞăă¨ăăăąăźă¸ăćŠč˝ăăăăăŤčŚăăžăăăăăšăŚăé¸ćĺŻč˝ăŤăăĺż čŚăăăăžăăăăăŻç§ăŽă˘ăăŞăąăźăˇă§ăłăŤăŻĺ˝ăŚăŻăžăăžăăă ç§ăŽçĽăéăăăżă¤ă ă˘ăŚăăăłăŹăźăżăŻç§ăŽĺéĄă解湺ăăžăăă äťăŽă˘ă¤ăă˘ăŻăăăžăăďź
@ emgerner-msft WindowsĺşćăŽäżĄĺˇăŻăŠăăéŠĺă§ăŻăŞăă¨ç˘şäżĄăăŚăăžăăďź
@Lukasaçç´ăŤč¨ăŁăŚăç§ăŤăŻăăăăžăăă ç§ăŻăăăžă§ăˇă°ăăŤă使ç¨ăăăă¨ăăŞăăăŞăŻă¨ăšăăä¸ćăăă¨č¨ăăăăžă§ć°ăĽăăŞăăŁăăăăŤăä˝ăéŠĺăăăăăžăăă ăžăăWindowsă§ĺä˝ăăăăăă ăăŤăăăĺĺžăăăă¨ăŻăăŚăăžăăă ĺŽĺ ¨ăŞăŻăăšăăŠăăăľăăźăďźWindowsă¨Unixďźă¨ăPython2ă¨Python3ăŽä¸ĄćšăŽăľăăźăăĺż čŚă§ăă 俥ĺˇăŽĺ¤ăăŻăăŠăăăăŠăźă ĺşćăŤčŚăăžăăăăăăŻç§ăćăăŚăăžăă ăżă¤ăăźăŻç§ăčŚăŚăă解湺çăŽ1ă¤ă§ăăăä˝ăŹăăŤă§ăŻăŞăăăăŤčŚăăăăăĺśç´ăĺŚçă§ăăĺŻč˝ć§ăăăăžăăăćĽçśăéăăćšćłăăăăăžăăă ç§ăŻăăŁââă¨čŞăăă¨ăă§ăăžăăăăăăç§ăăăŞăăăĄăăčż˝ĺ ăŽăŹă¤ăăłăšăĺžăăă¨ăćăă§ăăççąă§ăă :)
ă§ăăăăăăăŻćŹĺ˝ăŤăăŞăăăźăŞĺ ´ćă§ăă
çžĺŽăŤăŻăăšăŹăăăä¸ćăă䝼ĺ¤ăŤăăšăŹăăă埡ĺśçľäşăăăŻăăšăăŠăăăăŠăźă ăŽćšćłăŻĺ¤ăăĺ°ăŞăăăăăžăăăăăăŻĺşćŹçăŤăˇă°ăăŤă§ăă ă¤ăžăăăăŠăăăăŠăźă éă§ăăăćŠč˝ăăăăăăŤĺŽéăŤĺż čŚăŞăŤăźăăŻäżĄĺˇă ăă ă¨ćăăžăă ç§ăŻWindowsyPythonyăŽĺ°é厜ăŤpingăé俥ăăăă¨ăăĺžĺăăăăžăďź @brettcannon ăăăăŤčŻăććĄăăăăžăăďź
čĺłćˇąăăă¨ăŤăĺŽčŁ ă¨ăăšăăŤä˝ćĽăĺż čŚăŞĺ ´ĺăé¤ăăŚăăŞăŻă¨ăšăăŤăĺč¨ăżă¤ă ă˘ăŚăăăĺŽčŁ ăăŞăççąăŻăăăžăăďź ă¤ăžăăăăăĺŽčŁ ăăăăăŽăăăăäťćĽéćłăŽăăăŤçťĺ ´ăăĺ ´ĺăçčŤçăŤăŻćĺŚăžăăŻĺăĺ Ľăăăăžăăďź ăä¸ĺż čŚăŞč¤éăăćé¤ăăăă¨ăă茳çšăŤćčŹăăĺćăăžăăăăĺĽăŽăăăťăšăăăŠăźăŻăăăă¨ă§ăăăĺŽčĄă§ăăăă¨ăă茳çšăăăăăŽćŠč˝ăä¸čŚăŤăŞăăăă§ăŻăŞăă¨ćăăžăă
@jribbensăăăŤăŻăăă¤ăăŽĺéĄăăăăžăă
ăăźă1ăŻăăăŽăăăŞăăăăŽč¤éăăé常ăŤéŤăăă¨ă§ăă ćŁăăĺä˝ăăăăŤăŻăă˝ăąăăăŹăăŤă§ăżă¤ă ă˘ăŚăăçš°ăčżăĺ¤ć´ăăĺż čŚăăăăžăă ăăăŻăăăăăhttplibăäťăăŚĺşçŻĺ˛ăŤć¸Ąăăăĺż čŚăăăăă¨ăćĺłăăžăăăăăŻăĺż čŚäťĽä¸ăŤăăăăéŠç¨ăăŚăăžăă ĺşćŹçăŤăăăŽćŠč˝ĺ¤ć´ăĺŽçžăăăŤăŻăhttplibăŤă˘ăŻăťăšăăăăč¤éăŞăĄă˝ăăăŽç´50ďź ăĺĺŽčŁ ăăĺż čŚăăăăžăă
ăăźă2ăŻăăăŽăăăŞăăăăŽäżĺŽăćŻčźçé˘ĺă§ăăă¨ăăăă¨ă§ăă ćŁĺ¸¸ăŤĺŽčĄăăăŤăŻăhttplibďźçžćçšă§ăŻăăéŠĺăŤăŻhttp.clientďźăŽä¸ŚĺăăŠăźăŻăŤç¸ĺ˝ăăăăŽăŽçśćăéĺ§ăăĺż čŚăăăăžăă ăăăăŻăăăŽç¨ŽăŽĺ¤ć´ăŤăăéŠăăĺĽăŽHTTPăšăżăăŻăŽäżĺŽč˛ ć ăĺźăĺăăĺż čŚăăăăžăă ăăŽé¨ĺăŻăăăŽăăăŞćŠč˝ăćăă§ăăäşşăŤăŻăăčŚč˝ă¨ăăăŚăăă¨ćăăžăăăăăĺŽčŁ ăăăłăšăăŻéŤăă§ăăăăăšăŚăŽăăŠăăăăŠăźă ă§ăăŽăăăŞćŠč˝ăăľăăźăăăăăăŽçśçśçăŞăĄăłăăăłăšăłăšăă¨ćŻčźăăă¨ăăăăŻä˝ăăăăžăăă
ăăźă3ăŻăăăŽăăăŞăăăăŽĺŠçšăä¸ć確ă§ăăă¨ăăăă¨ă§ăă ĺŽĺ ¨ăŞăżă¤ă ă˘ăŚăăăăăĺż čŚă¨ăăăťă¨ăăŠăŽäşşăŻăčŞĺăä˝ăćăă§ăăăăŤă¤ăăŚĺŽĺ ¨ăŤć確ăŤčăăŚăăŞăă¨ăăăŽăç§ăŽçľé¨ă§ăă ăťă¨ăăŠăŽĺ ´ĺăĺč¨ăżă¤ă ă˘ăŚăăăŠăĄăźăżăŻăççąăăŞăĺŽĺ ¨ăŤéŠĺăŞăŞăŻă¨ăšăă埡ĺśçľäşăăĺšćăăăăžăă
ăă¨ăă°ăăăĄă¤ăŤăăăŚăłăăźăăăăłăźăăĺ°ăč¨č¨ăăăăłă°ăĺŚçăăăă¨ăăžăă ćĺăŻăăŠăăăŞĺč¨ăżă¤ă ă˘ăŚăăč¨ĺŽăăăăŽă§ăăďźăăŞăŻă¨ăšăăŤ30ç§äťĽä¸ăăăăă¨ăŻăăăžăăďźăďźăăăŽăăăŞăżă¤ă ă˘ăŚăăŻăă¤ăłăăéăăžăă ăă¨ăă°ăăăĄă¤ăŤăŽăľă¤ăşă30MBăă30GBăŤĺ¤ć´ăăăĺ ´ĺăăăŚăłăăźăăĺŽĺ ¨ăŤćŁĺ¸¸ă§ăăŁăŚăăăăŽăăăŞăăĄă¤ăŤăŻăăŽăăăŞćéééă§ăăŚăłăăźăăăăă¨ăŻă§ăăžăăă
č¨ăćăăă¨ăĺč¨ăżă¤ă ă˘ăŚăăŻé
ĺçăŞĺäťăŞĺéĄă§ăăĺéĄă解湺ăăŚăăăăăŤčŚăăžăăăĺšćçăŤăŻĺŽčĄăăŚăăžăăă ç§ăŽćčŚă§ăŻăăăäžżĺŠăŞă˘ăăăźăăŻă stream=True
ăăăłiter_content
ă¨çľăżĺăăăŚăă˝ăąăăă˘ăŻăˇă§ăłăă¨ăŽăżă¤ă ă˘ăŚăăĺŠç¨ăăăăźăżăŽăăŁăłăŻăŤăżă¤ă ă˘ăŚăăĺ˛ăĺ˝ăŚăăă¨ă§ăă iter_content
ăćŠč˝ăăćšćłă§ăŻăĺśĺžĄăăăźăŻăăç¨ĺşŚä¸ĺŽăŽééă§ăłăźăăŤčżăăăžăă ă¤ăžăăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăďźäžďź5ç§ďźăč¨ĺŽăăŚăăăăăŞăĺ°ăăŞăăŁăłăŻďźäžďź1KBăŽăăźăżďźăŤĺŻžăăŚiter_content
ăč¨ĺŽăăçŠćĽľçăŤćťćăăăŚăăŞăéăăăľăźăăšćĺŚăăŞăăă¨ăćŻčźç確俥ă§ăăžăăăăă§ĺŻč˝ă§ăă ăľăźăăšćĺŚăćŹĺ˝ăŤĺżé
ăŞĺ ´ĺăŻăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăăăŻăăăŤä˝ăč¨ĺŽăăăăŁăłăŻăľă¤ăşăĺ°ăăďź0.5ç§ă¨512ăă¤ăďźăăŚăĺśĺžĄăăăźăĺŽćçăŤčżăăăăăăŤăăžăă
ăăăăăšăŚăŽçľćăŻăăăŽăăăŞăŠă¤ăăŠăŞă§ăŻăĺč¨ăżă¤ă ă˘ăŚăă誤ăŁăćŠč˝ă§ăăă¨ç§ă俥ăăŚăăăă¨ă§ăă ćéŠăŞç¨ŽéĄăŽăżă¤ă ă˘ăŚăăŻă大ăăŞĺżçăĺŽĺżăăŚăăŚăłăăźăă§ăăăăăŤčŞżć´ăăăăăŽă§ăăăăŽăăăŞăżă¤ă ă˘ăŚăăŻăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăă¨iter_content
ăŤăăŁăŚćéŠăŤĺŚçăăăžăă
ăăśă@zoobaăŻăWindowsăăŠăŽăăăŤćŠč˝ăăăăĺŽéăŤçĽăŁăŚăăăŽă§ăă˘ă¤ăă˘ăćăŁăŚăăžăă :)
ďźçĄé˘äżăŤăç§ăŽĺĽ˝ăăŞăă¨ăŽ1ă¤ăŻăGitHubăŽĺéĄă§ĺ°é厜ăŽăă¤ă¸ăźăă§ăźăłăč¨ĺŽăăăă¨ă§ăăďź
ăăăç§ăŻăă§ăŤ@zoobaă¨@brettcannonăçĽăŁăŚăăžăă ăăăŤĺŻžăă解湺çăŻăăăă彟ăăŤă彚çŤă¤ăŽă§ăç§ăŻăăă§ăăžăăŻç¤žĺ ă§ĺ˝źăă¨čŠąăĺăăă¨ăă§ăăžăă
@ emgerner-msftç§ăŻăăŞăăăăăăăăăŞăă¨ćăăžăăăăć¨ć¸Źăăăăăăžăăă§ăăďźMSFTăŻĺ¤§ăăŞçľçšă§ăďź
@Lukasaä¸ă§ć¸ăăăăăšăăŽĺŁăčŞăă§ăăă ăă§ă-é˘ç˝ăă§ăďź stream = Trueă¨iter_contentăăćéăăŚăłăăźăăžă§ăŽč°čŤă§ăăă大ăăŞă˘ăăăăźăăĺŚçăăĺçăŽćšćłăŻä˝ă§ăăďź
_PS_ďźăĺĽăŽč¨ăćšăăăă°..ăă§ĺ§ăžăä¸č¨ăŽćŽľč˝ăŻăç§ăăăăĽăĄăłăă§ć˘ăăŚăă税éĄăŽăŹă¤ăăłăšă§ăă ć大ăżă¤ă ă˘ăŚăă§ĺĺžăăăŞăŻă¨ăšăăŽć°ďźăăăłăăăčĄăăŞăćŁĺ˝ăŞççąďźăčăăă¨ăăăăăćĺăŽćšćłăŻăăżă¤ă ă˘ăŚăăăăĽăĄăłăăŤăăŽć ĺ ąăŽä¸é¨ăčż˝ĺ ăăăă¨ă§ăă
çŹ@lukasaăă§ăŤé ăŤćľŽăăă ăĄăłăăăłăšăŤă¤ăăŚăăŁăăăŁăŚăăžăăăăćŠč˝vs誤ćŠč˝ăăŤă¤ăăŚăŻăćŁĺ寞ă§ăă ĺŽĺ ¨ăŞăżă¤ă ă˘ăŚăă_ćăžăŞă_äşşăŻă彟ăăä˝ăćăă§ăăăŽăăć確ăŤčăăŚăăŞăă¨ćăăžăăăăŞăăăă°ă¨ăăŚčŞŹćăăŚăăă30MBăŽăăŚăłăăźăă30GBăŤĺ¤ć´ăăă夹ćăăăă¨ăăçśćłăćłĺăăăŽăŻéŁăăă§ăăĺŽéăćçăŞćŠč˝ă§ăďź
ăăŞăăč¨ăăăăŤă stream=True
ă使ç¨ăăŚĺ°ăäźźăăăăŞăă¨ăăăăă¨ăă§ăăžăďźăăăăĺŽĺ
¨ăŞăżă¤ă ă˘ăŚăăŽĺŠçšăŽăťă¨ăăŠăăŞăă¨ćăăžăďźăăăŞăŻă¨ăšăăŽăă¤ăłăăŻăăăăăŞăăŽăăăŤçŠäşăĺŚçăăăă¨ă ă¨ćăăžăă...
ăŞăŻă¨ăšăăŽăă¤ăłăăŻăăăăăăŞăăŽăăăŤçŠäşăĺŚçăăăă¨ă ă¨ćăăžăă
HTTPăĺŚçăăžăă ćĽçśă¨čŞăżĺăăŽăżă¤ă ă˘ăŚăăăă§ăŤĺŚçăăŚăăăć°ĺš´éăŽćŠč˝ăŽăăŞăźăşăŤĺŻžăăŚ2ă¤ăŽäžĺ¤ăăăŁăă¨ăăäşĺŽăŻăăŚăźăăŁăŞăăŁăćăžăăăä¸č˛Ťć§ďźč¤ć°ăŽăăŠăăăăŠăźă éďźăăăăłäżĺŽć§ăŽč°čŤăŤćŁćĽăăŚăăžăă çć§ăăăŽăăŁăźăăăăŻă¨ăćčŚăăĺž ăĄăăŚăăăžăă ć示ăăć°ăăć ĺ ąăăăă°ăăăăăăă ăăă°ĺš¸ăă§ăă
ăžăăăăŽăăă¸ă§ăŻăă§ćĺŚăăăćŠč˝ăŞăŻă¨ăšăăŽć°ă¨ăăŚăźăśăźăŽä¸čŹçăŞä˝żç¨ăăżăźăłăĺŽčŁ ăăĺĽăŽăăă¸ă§ăŻăďźăŞăŻă¨ăšăăăźăŤăăŤăďźăăăă¨ăăäşĺŽăŤăăŁăŚăăŞăŻă¨ăšăăăăšăŚăĺŚçăăăăă§ăŻăŞăăă¨ăăăăăžăă ĺč¨ăżă¤ă ă˘ăŚăăăŠăăăŤăăĺ ´ĺăăăăŻăăăŤăăăžăăăçš°ăčżăăŤăŞăăžăăăWindowsăBSDăLinuxăăăăłOSXă§ăĺŞăăăăšăăŤăăŹăă¸ăĺăăçśćăăăŽăćŞĺ¤˘ăŤăŞăăă¨ăŞăĺä˝ăăĺż čŚăăăăžăă
stream = Trueă¨iter_contentăăćéăăŚăłăăźăăžă§ăŽč°čŤă§ăăă大ăăŞă˘ăăăăźăăĺŚçăăĺçăŽćšćłăŻä˝ă§ăăďź
ă˘ăăăăźăç¨ăŽă¸ă§ăăŹăźăżăźăĺŽçžŠăăăăădata
ăŤć¸Ąăăžăă ăžăăŻăăăŁăłăŻă¨ăłăłăźăăŁăłă°ăĺč
ă§ăŞăĺ ´ĺăŻăéćłăŽread
ăĄă˝ăăă使ç¨ăăŚăăĄă¤ăŤăŽăăăŞăŞăă¸ă§ăŻăăĺŽçžŠăă_that_ădata
ăŤć¸Ąăăžăă
ĺ°ă芳ăă誏ćăăăŚăă ăăă ă¸ă§ăăŹăźăżăźădata
ăŤć¸Ąăă¨ăăŞăŻă¨ăšăăŻă¸ă§ăăŹăźăżăźăçš°ăčżăĺŚçăăĺăăŁăłăŻăé çŞăŤé俥ăăžăă ă¤ăžăăăăźăżăé俥ăăăŤăŻăăăŁăłăŻăă¨ăŤăłăźăăŤĺśĺžĄăăăźă渥ăĺż
čŚăăăăžăă ăăăŤăăăäžĺ¤ăăšăăźăăŚăŞăŻă¨ăšăăĺŽĺ
¨ăŤä¸ć˘ăăăŞăŠăăăŽéăŤăăăăăă¨ăä˝ă§ăă§ăăžăă
ä˝ăăăŽççąă§ă˘ăăăăźăăŤăăŁăłăŻčť˘éă¨ăłăłăźăăŁăłă°ă使ç¨ă§ăăŞăĺ ´ĺďźĺŻč˝ć§ăŻä˝ăă§ăăăĺéĄăŽăľăźăăźăćŹĺ˝ăŤćŞăĺ ´ĺăŻĺŻč˝ă§ăďźăéˇăăŽăăăăĄă¤ăŤăŽăăăŞăŞăă¸ă§ăŻăăä˝ćăăŚăăă read
ĺźăłĺşăăŽéćłăăăăŻă8192ăă¤ăăŽăăŁăłăŻăŤĺŻžăăŚçš°ăčżăĺźăłĺşăăăžăă çš°ăčżăăŤăŞăăžăăăăăăŤăăăĺśĺžĄăăăźăăłăźăăćçśçăŤééăăăăăŤăŞăăçŹčŞăŽăă¸ăăŻă使ç¨ă§ăăăăăŤăŞăăžăă
PSďźăĺĽăŽč¨ăćšăăăă°..ăă§ĺ§ăžăä¸č¨ăŽćŽľč˝ăŻăç§ăăăăĽăĄăłăă§ć˘ăăŚăă税éĄăŽăŹă¤ăăłăšă§ăă ć大ăżă¤ă ă˘ăŚăă§ĺĺžăăăŞăŻă¨ăšăăŽć°ďźăăăłăăăčĄăăŞăćŁĺ˝ăŞççąďźăčăăă¨ăăăăăćĺăŽćšćłăŻăăżă¤ă ă˘ăŚăăăăĽăĄăłăăŤăăŽć ĺ ąăŽä¸é¨ăčż˝ĺ ăăăă¨ă§ăă
ç§ăŻčăăžă_ă ăăăăä¸čŹçăŤč¨ăŁăŚăç§ăŻĺ¸¸ăŤăăăăăé˛ĺžĄçăŞăăăšăăăăăĽăĄăłăăŤĺ Ľăăăă¨ăŤçĽçľčłŞăŤăŞăŁăŚăăžăă ăăăŻç§ăć¨ć¸ŹăăFAQăŤĺ ĽăĺŻč˝ć§ăăăăžăăăăŞăç§ăăĄăä˝ăăćăŁăŚăăŞăăŽăă誏ćăăăăăšăăăăăĽăĄăłăă§ĺ˝šçŤă¤ăă¨ăŻăăŁăăŤăăăžăăă ăăăĽăĄăłăĺ ăŽăšăăźăšăŻăä˝ăăăăăăăŽăŹăˇăăŤăăŁăŚăăăéŠĺăŤćäžăăăă¨ćăăžăă
ĺŽĺ ¨ăŞăżă¤ă ă˘ăŚăăćăžăŞăäşşăŻăčŞĺăä˝ăćăă§ăăăŽăăć確ăŤčăăŚăăŞăă¨ćăăžăăă30MBăŽăăŚăłăăźăă30GBăŤĺ¤ć´ăăăăăă夹ćăăăă¨ăăăă°ă¨ăăŚčŞŹćăăăăŽăăăă§ăŻăŞăçśćłăćłĺăăăŽăŻéŁăăă§ăăĺŽéăćçăŞćŠč˝ă§ăďź
ăăăç§ăŻéăăžăďź
ĺŽéăŤăŻăéçşč ăĺŚçăăăăĄă¤ăŤăľă¤ăşă1ćĄäťĽĺ ă§çĽăŁăŚăăă¨ăăăŽăŻăçăăăąăźăšă ă¨ćăăžăă ăťă¨ăăŠăŽĺ ´ĺăéçşč ăŻä˝ăçĽăăžăăă ăăăŚăä¸čŹçăŤăăăăăŽăľă¤ăşăŤă¤ăăŚäťŽĺŽăăăă¨ăŻčł˘ćă§ăŻăŞăă¨ćăăžăă ăăŚăłăăźăăľă¤ăşăŤĺśç´ăăăĺ ´ĺăăłăźăăŻăăăăŽäťŽĺŽăćéťçăŤă¨ăłăłăźăăăŚăŚăźăśăźăŽăăăăŻăźăŻăŽĺ¸Żĺĺš ă¨ćˇˇĺăăăŽă§ăŻăŞăăćĺłçăŤă¨ăłăłăźăăăĺż čŚăăăăžăďźăă¨ăă°ăăłăłăăłăăŽéˇăăŽăă§ăăŻăŽĺ˝˘ă§ďźăăłăźăăŻăăăăăŻăŁăăă¨čŚăăă¨ăă§ăăžăă
ă§ăăŞăŻă¨ăšăăŽăă¤ăłăăŻăăăăăŞăăŽăăăŤçŠäşăĺŚçăăăă¨ă ă¨ćăăžăă...
ăŞăŻă¨ăšăăŻăăŚăźăśăźăŤă¨ăŁăŚăăšăŚăćĺłçăŤĺŚçăăăăă§ăŻăăăžăăă ăăšăŚăĺŽčĄăăăă¨ăăăă¨ăŻä¸ĺŻč˝ăŞä˝ćĽă§ăăăăăăĺŽčĄăăĺŞăăăŠă¤ăăŠăŞăć§çŻăăăă¨ăŻä¸ĺŻč˝ă§ăă ä˝ăăéćăăăăăŤăĺŽćçăŤurllib3ăŤăăăăăăŚăłăăăăăŤăŚăźăśăźăŤć示ăăžăă
ăłăźăăăŞăŻă¨ăšăăŤĺ ĽăăăŽăŻăăťă¨ăăŠăŽăŚăźăśăźăĺŽčĄă§ăăăăăĺŞăăăăžăăŻăŻăŞăźăłăŞăłăźăăĺŽčĄă§ăăĺ ´ĺăŽăżă§ăă ăăă§ăŞăăă°ă䞥ĺ¤ăŻăăăžăăă çšăŤăăŚăźăśăźăăźăšĺ ¨ä˝ă§éč¨ăăă¨ăăŤćŻčźçéçĺšç¨ă§ăăă¨ç§ăčŞčăăŚăăăă¨ăčăăă¨ăç§ăŻăžă ăăăăŽ1ă¤ă§ăăĺč¨ăżă¤ă ă˘ăŚăă§ĺŁ˛ăăăŚăăžăăă
ă¨ăŻč¨ăăăŽăŽăç§ăŻčŞĺăééăŁăŚăăă¨ç˘şäżĄăăăă¨ăĺăĺ ĽăăŚăăžăăç§ăŻăžă 誏ĺžĺăŽăăč°čŤăčŚăŚăăžăăďźăăăŚăăăšă§ăăŞăăĺ ĺ°ăăăăăŤăăç§ăŻăăăĺż čŚă§ăďźăăŻčŞŹĺžĺăŽăăč°čŤă§ăŻăăăžăăďźăăă¤ăăŽççąăćăăŞăăă°ăŞăăžăăďźďźă
@ sigmavirus24
ĺč¨ăżă¤ă ă˘ăŚăăăŠăăăŤăăĺ ´ĺăăăăŻăăăŤăăăžăăăçš°ăčżăăŤăŞăăžăăăWindowsăBSDăLinuxăăăăłOSXă§ăĺŞăăăăšăăŤăăŹăă¸ăĺăăçśćăăăŽăćŞĺ¤˘ăŤăŞăăă¨ăŞăĺä˝ăăĺż čŚăăăăžăă
ĺćăăžăăďź
@lukasaç§ăŽčăă§ăŻăç§ăŻăăă揲ăăă ăă§ăŞăăĺŽéăăťă¨ăăŠăăšăŚăŽăŚăźăśăźăăăăŤă¤ăăŚčăăă°ăăăćăă§ăăă¨ćăăžăďźăžăăŻĺ˝źăăŻăăăăžă ăăăŤăŞăăă¨ăŤć°ăĽăăŚăăžăăďźă ä¸č¨ăŽä˝żç¨ăˇăăŞăŞăŽĺĺăŻéżăăăšăă ă¨č¨ăŁăŚăăžăăăăăăŻéčŚă ă¨ćăăžăďźWebăšăŻăŹă¤ăăźă¨ăă°ă˘ă°ăŞă˛ăźăżăźďź-äťăŽ2ă¤ăŻăçľćăĺž ăŁăŚăăăŚăźăśăźăćĺă§ăăŚăłăăźăăăăŁăłăťăŤă§ăăĺŻč˝ć§ăăăăăăăăăťăŠĺż čŚă§ăŻăăăžăăă彟ăăćăă UIăŞăă§ăăăŻă°ăŠăŚăłăă§ĺŽčĄăăăĺ ¨ä˝çăŞăżă¤ă ă˘ăŚăă使ç¨ăăŞăăăŽăŻăăšăŚăç§ăŽčŚč§Łă§ăŻăă°ăăăăžăă
ç§ăŽčăă§ăŻăç§ăŻăăă揲ăăă ăă§ăŞăăĺŽéăăťă¨ăăŠăăšăŚăŽăŚăźăśăźăăăăŤă¤ăăŚčăăă°ăăăćăă§ăăă ăăă¨ćăăžăďźăžăăŻĺ˝źăăŻăăăăžă ăăăŤăŞăăă¨ăŤć°ăĽăăŚăăžăăďźă
@jribbensăŚăźăśăźăŽăăźăşă¨čŠąăĺăăç解ăăăŽăŤć°ĺš´ďź3äşşĺ ¨ĺĄăŽçľé¨ăçľăżĺăăăă¨10嚴䝼ä¸ďźăăăžăă ăťă¨ăăŠăăšăŚďźĺ°ăŞăă¨ă98ďź ďźăŽăŚăźăśăźăŤĺż čŚăŞăŽăŻăćĽçśă¨čŞăżĺăăŽăżă¤ă ă˘ăŚăă§ăă é常ăŤĺ°ć°ăŽăŚăźăśăźăĺ ¨ä˝çăŞăżă¤ă ă˘ăŚăăćăă§ăăăă¨ăç解ăăŚăăžăă ăăŽćŠč˝ăŽć˝ĺ¨çăŞăŚăźăśăźăŽă°ăŤăźăăŽăľă¤ăşă¨ăăăŽćŠč˝ăĺż čŚă¨ăăŞăăŚăźăśăźăŽć˝ĺ¨çăŞăľă¤ăşăăăăłćŠč˝ăŽäżĺŽă¨éçşăŽč¤éăăć¨ĺŽă§ăăăă¨ăčăăă¨ăăăăŻĺŽéăŤăŻç§ăăĄăčĄăŁăŚăăăă¨ă§ăŻăăăžăăăăăă¨ă
ĺ ąćăă_ć°ăă_ăăŽăăăă°ăăăăčăăăăŽă§ăăăăăăžă§ăŽă¨ăăăĺ ¨ä˝çăŞăżă¤ă ă˘ăŚăăŞăă§ăŞăŻă¨ăšăă使ç¨ăăăăŽăŻăă°ăăăăĺ¤ăăŽăŚăźăśăźăăăă¨ćăăžăă彟ăăŽč¨č¨ä¸ăŽćąşĺŽăŻăă°ăăăă¨ăăăăŞăăŽä¸ťĺźľăŤč šăçŤăŚăă§ăăăă ăăăăŁăŚăăŚăźăśăźăŽçĽć§ă䞎螹ăăăă¨ăŻăé ć Žăă ăăă
@ sigmavirus24ăăŽăšăŹăăăéăăŚăăăŞăăŻä¸ĺż čŚăŤčŚä¸ăăççă辡ăăă夹礟ă§ăăăä¸ĺŻ§ăŤăéĄăăăžăăăăăŚăă ăăă
@LukasaăšăăŞăźăăłă°ăŽă˘ăăăăźăă¨ăăŚăłăăźăăčĄăćšćłăŤă¤ăăŚăŽććĄă芳ăă調ăšăăăăăŽăăăăŻăŤé˘ăăăăăĽăĄăłăăčŞăżăžăăă ç§ăŽäťŽĺŽ/質ĺăć¤č¨źă§ăăă°ăăăăŻç´ ć´ăăăăă¨ă§ăă
ç§ăŻă˝ăąăă/ TCPăăăăłăŤăŞăŠăŽä¸čŹçăŞç解ăćăŁăŚăăžăăăurllibăăăăăŽćŚĺżľăä¸ä˝ăŹăăŤă§ăŠăŽăăăŤćŠč˝ăăăăăžăăŻčŚćąăĺ¤ă渥ă䝼ĺ¤ăŤçšĺĽăŞăă¨ăčĄăăăŠăăăŻćŁç˘şăŤăŻăăăăžăăă ĺăŤĺśĺžĄăăăźăĺăćťăăăšăŹăăăŽçľäşăŤé˘ăăăŻăăšăăŠăăăŽĺéĄăčăăă¨ăçŹčŞăŽăżă¤ă ă˘ăŚăăšăăźă ăéŠç¨ăăŚăćŠč˝ăăŞăăăăăżă¤ă ă˘ăŚăăăŠăŽăăăŤéŠç¨ăăăăăćŁç˘şăŤç解ăăăă¨ćăăžăă ç§ăŽčłŞĺăŤçăăăăăŽčż˝ĺ ăŽčŞăżçŠăăăĺ ´ĺăŻăé ć ŽăŞăç§ăç´šäťăăŚăă ăăďź ăăăăŤăăăăăăç§ăŽćĺžăŽčłŞĺăŤăŞăăă¨ăéĄăŁăŚăăžăă :)
ăăăžă§ăŽăĺĺăŤćčŹăăžăă
@ emgerner-msft Okďź
io.BufferedReader
ăŽăăăŞăăŽďźă§ăŠăăăăăă¨ă§ăă ăăăŤăăăĺĺăŞăăźăżăćäžăăăăžă§ăĺż
čŚăŞć°ăŽrecv_into
ĺźăłĺşăăčĄăăăžăă ăăăŻăăźăďźăăăăĄăŤăă§ăŤĺĺăŞăăźăżăăăĺ ´ĺďźăžăăŻăŞă˘ăźăăă˘ăä¸ĺşŚăŤ1ăă¤ăăă¤ăăŞăăăăŁăźăăăŚăăĺ ´ĺăŻăĺ俥ăăăă¤ăć°ă¨ĺăăăăăŽć°ăŤăŞăĺŻč˝ć§ăăăăžăă ăăăŤă¤ăăŚă§ăăăă¨ăŻăťă¨ăăŠăăăžăăăăăŽăăăŞăăăăĄăŞăłă°ăăăăŞăă¸ă§ăŻăăŤĺŻžăăread()
ĺźăłĺşăăŽć§čłŞä¸ăĺrecv_into
ĺźăłĺşăăŽéăŤĺśĺžĄăăăźăćťăăă¨ăăă§ăăžăăăă¤ăžăănç§äťĽĺ
ăŽĺž
ćŠăäżč¨źăăĺŻä¸ăŽćšćłăŻăăăŁăłăŻăľă¤ăşă1
ăŽiter_content
ăĺŽčĄăăăă¨ă§ăă ăăăŻăăăĄă¤ăŤăăăŚăłăăźăăăăăăŽé常ăŤéĺšççăŞćšćłă§ăďźPythonăłăźăă§é常ăŤĺ¤ăăŽćéă貝ăăăžăďźăăĺż
čŚăŞäżč¨źăĺĺžăăĺŻä¸ăŽćšćłă§ăă
socket.setdefaulttimeout
ă使ç¨ăăăă¨ă§ăăiter_content
ăŽĺ ´ĺă¨ĺăć¸ĺżľăăăăžăăăăšăŚăăăŚăłăăźăăăăŞăŻă¨ăšăăăăĺ ´ĺăćŹćăăăŚăłăăźăăăăăăŤĺż
čŚăŞć°ăŽrecv_into
ĺźăłĺşăăçşčĄăăăă¨ăŤăŞăăăżă¤ă ă˘ăŚăăéŠç¨ăăăžăăé çŞăŤăăăăăŤăăăă§ăłă˘ăŽĺéĄăŤăśă¤ăăŁăŚăăžăăčŚćąăŻăć˘ăăŚăăăăŽăćŁç˘şăŤéćăăăăăŤă˝ăąăăăŤĺĺăŤčżăĽăăŞăă ăă§ăă é俥ăżă¤ă ă˘ăŚăăčż˝ĺ ăăăă¨ăŻ_ĺŻč˝_ă§ăăăăăŻćŠč˝čŚćąăŽä˝ćĽăčć
ŽăăăăŽă§ăăăčŞăżĺăăżă¤ă ă˘ăŚăă¨ĺăĺéĄăŻçşçăăžăăăă httplib
ăďźćŁăăďźăšăŻăăăłă°ăčŚćąăăăăăäťăŽăăšăŚăŽĺéĄăçşçăăžăăăăăăĄăŞăłă°ăăăă˝ăąăă襨çžăŤĺ¤ćăăă¨ăćŽăăŽhttplib
ăŻăăŽăăăăĄăŞăłă°ăăă襨çžă使ç¨ăăžăă
@ăŤăŤăľ
ăăăăŞăăŚăăĄăăăĄăă ăăăă ăăăăăăăŞăă¨ćăăžăăăăčŞĺăééăŁăŚăăăă¨ăćŹĺ˝ăŤćăă§ăăžăăă
ăžăăé俥ăżă¤ă ă˘ăŚăăăŠăăăŚăĺż čŚă§ăă ă˘ăăăăźăăçĄéăŤăăłă°ăăĺŻč˝ć§ăăăăă¨ăăŚăźăśăźăŤäźăăăă¨ăŻă§ăăăĺéĄă俎ćŁăăč¨çťăŻăăăžăăă ďź/
çžćçšă§ăŻăç§ăŻä¸ĺŻč˝ăŞçśćłăŤăăăăă§ăă ĺč¨ăżă¤ă ă˘ăŚăăŤĺŻžăăăŠă¤ăăŠăŞăŽăľăăźăăŻăăăžăăďźç§ăŻç解ăăŚăăžăďźă ć˘ĺăŽăżă¤ă ă˘ăŚăăăăžăăžăŞăăŁăłăŻăľă¤ăşă§ăŠăŽăăăŤćŠč˝ăăăăŤă¤ăăŚăŽćŁç˘şăŞäżč¨źăŻăăăžăă-ăăăăă°ăćéăĺč¨ăăăă¨ăă§ăăžăďźćĽçśăżă¤ă ă˘ăŚă+čŞăżĺăăżă¤ă ă˘ăŚă*ăăŁăłăŻăľă¤ăşă ăšăăŞăźă ă˘ăźăă¨ă¸ă§ăăŹăźăżăźă§ăăăźăä¸ćă§ăăăŽăŻç´ ć´ăăăăă¨ă§ăăăăŻăăšăăŠăăăăŠăźă ăŽćšćłă§ĺŽéăŤăšăŹăăăä¸ć˘ăăă˝ăŞăĽăźăˇă§ăłăăŞăăăăăăă彚ăŤçŤăĄăžăăă ĺé˛ăăăăăŽäťăŽăŞăăˇă§ăłăăăăžăăďź ăăăăŽĺéĄă解湺ăăăăăŤäťăŽăŚăźăśăźăŻä˝ăăăŚăăžăăďź
ăžăăé俥ăżă¤ă ă˘ăŚăăăŠăăăŚăĺż čŚă§ăă ă˘ăăăăźăăçĄéăŤăăłă°ăăĺŻč˝ć§ăăăăă¨ăăŚăźăśăźăŤäźăăăă¨ăŻă§ăăăĺéĄă俎ćŁăăč¨çťăŻăăăžăăă ďź/
ăăăăŁăŚăăŞăŻă¨ăšăă§ä˝żç¨ăăăăżă¤ă ă˘ăŚăăă¸ăăŻăŻăĺşćŹçăŤurllib3ăŽăă¸ăăŻă§ăăăăăăăă§ĺ¤ć´ăĺ ăăă ăă§ĺĺă§ăăćŠč˝ăŞăŻă¨ăšăăčŞçąăŤéăăŚăă ăăăĺ¤ć´ăăćäźăăăžăă ăăăŚçćçăŤăŻă setdefaulttimeout
ă使ç¨ăăŚčŞçąăŤčŞżćťăăŚăă ăăă
ĺé˛ăăăăăŽäťăŽăŞăăˇă§ăłăăăăžăăďź ăăăăŽĺéĄă解湺ăăăăăŤäťăŽăŚăźăśăźăŻä˝ăăăŚăăžăăďź
ăăăŤăăăŞăăˇă§ăłăŻăçšĺŽăŽĺśç´ăŤăăŁăŚç°ăŞăăžăă
確ĺŽçăŞăżă¤ă ă˘ăŚăăĺż
čŚăŞĺ ´ĺďźă¤ăžăăăŞăŻă¨ăšăă_n_ç§äťĽĺ
ăŤăăăăă¨ăäżč¨źă§ăăĺż
čŚăăăĺ ´ĺďźăçžĺ¨ĺĺ¨ăăPythonć¨ćşăŠă¤ăăŠăŞă§ăŻç°ĄĺăŤăăăčĄăăă¨ăŻă§ăăžăăă Python 2.7ă§ăŻă socket._fileobject
ăŤăăăăéŠç¨ăăŚă recv
ĺźăłĺşăăă¨ăŤé 揥ăżă¤ă ă˘ăŚăăĺŽčĄă§ăăăăăŤăăĺż
čŚăăăăžăăăPython 3ă§ăŻăĺŽčŁ
ăĺŽčŁ
ăăăŚăăăŻăŠăšăŤăăăăéŠç¨ăăĺż
čŚăăăăăăăăăŤĺ°éŁă§ăăăŻCďź io.BufferedReader
ďźă§ăăăăăăŻćŞĺ¤˘ăŤăŞăăžăă
ăă䝼ĺ¤ăŽĺ ´ĺăăăăĺĺžăăĺŻä¸ăŽćšćłăŻăć¨ćşăŠă¤ăăŠăŞăŽăăăăĄăŞăłă°ă_ăŞă_ăŤăăăă¨ă§ăă ăăăŤăăăhttplibă¨ăăŽä¸ăŽăăšăŚăŽăăăăç ´ćăăžăăăăăŻăă˝ăąăăă§ăŽread
ăˇăšăă ăłăźăŤă§ăŻăŞăă read
ďźăŽăăăŤĺä˝ăăread(x)
ĺźăłĺşăăĺŽčĄă§ăăăă¨ăĺćă¨ăăŚăăžăăăăĄă¤ăŤăŤĺŻžăăread
syscallďźă¤ăžăăćąşĺŽčŤçăŞéˇăăčżăăžăďźă
ĺĽăŽč¨ăćšăăăă°ăćąşĺŽčŤçăŞăżă¤ă ă˘ăŚăă_ĺż
čŚ_ăŞĺ ´ĺăč¨ĺ¤§ăŞć°ăŽăŠă¤ăăŠăŞăăăăćäžă§ăăŞăăă¨ăŤć°äťăă§ăăăă ĺşćŹçăŤă彟ăăhttplib
ăžăăŻsocket.makefile
ă使ç¨ăăĺ ´ĺăéăćŞăăŞăăžăăéˇăăçš°ăčżăçşčĄăăăă¨ăé¤ăăŚăĺŽçžŠăăăćéĺ
ăŤĺśĺžĄăčżăăăăă¨ăäżč¨źăăăŻăŞăźăłăŞćšćłăŻăăăžăăă -1ĺăŽčŞăżĺăă ăăŞăăŻăăă_ă§ăăžă_ăăăăăŻăăŞăăŽăăăŠăźăăłăšăćăŞăă§ăăăă
ăăăăŁăŚăăăă§ăăŹăźăăŞăăăăăžăăćąşĺŽčŤçăŞăżă¤ă ă˘ăŚăăĺż čŚăŞĺ ´ĺăPythonć¨ćşăŠă¤ăăŠăŞďźăăăłăŞăŻă¨ăšăďźă§ăăăăĄăŞăłă°ăĺŽčŁ ăăćšćłă§ăŻăăăăĺŠç¨ă§ăăăăăŤăŻăŞăăžăăă ăăăăĄăŞăłă°ăçĄĺšăŤăăŚăłăźăăć¸ăç´ăăă¨ă§ăăăĺăćťăăă¨ăă§ăăžăăăăżă¤ă ă˘ăŚăă確čŞăăćšćłă§ăăăăĄăŞăłă°ăĺĺŽčŁ ăăŞăéăăăăăŠăźăăłăšăĺ¤§ĺš ăŤä˝ä¸ăăĺŻč˝ć§ăăăăžăă
BufferedReader
ăŻăŠăšăŽPythonć¨ćşăŠă¤ăăŠăŞăŤĺż
čŚăŞăłăźăăĺŽčŁ
ăăăă¨ăçŽćăăă¨ăă§ăăžăăPythonăŽäşşă
ăŤčĺłăăăăăŠăăă確ĺŽăŤĺ°ăăăă¨ăă§ăăžăă ăăăăç§ăŻćŻăć˘ăăžăăă§ăăă
ăăăăŁăŚăăŞăŻă¨ăšăă§ä˝żç¨ăăăăżă¤ă ă˘ăŚăăă¸ăăŻăŻăĺşćŹçăŤurllib3ăŽăă¸ăăŻă§ăăăăăăăă§ĺ¤ć´ăĺ ăăă ăă§ĺĺă§ăăćŠč˝ăŞăŻă¨ăšăăčŞçąăŤéăăŚăă ăăăĺ¤ć´ăăćäźăăăžăă ăžăăçćçăŤăŻăsetdefaulttimeoută使ç¨ăăŚčŞçąăŤčŞżćťăăŚăă ăăă
urllib3ăžăăŻăăă§ăŽćŠč˝ăŞăŻă¨ăšăďź ă§ăăă ăćŠăä¸ćšďźăžăăŻä¸Ąćšďźăéăăžăă
urllib3ăŽćŠč˝ăŞăŻă¨ăšăďźăŞăŻă¨ăšăă§ć°ăăăăŽăĺ Źéăăĺż čŚăŻăăăžăăă
ćăĺčăŤăŞăăłăĄăłă
@jribbensăăăŤăŻăăă¤ăăŽĺéĄăăăăžăă
ăăźă1ăŻăăăŽăăăŞăăăăŽč¤éăăé常ăŤéŤăăă¨ă§ăă ćŁăăĺä˝ăăăăŤăŻăă˝ăąăăăŹăăŤă§ăżă¤ă ă˘ăŚăăçš°ăčżăĺ¤ć´ăăĺż čŚăăăăžăă ăăăŻăăăăăhttplibăäťăăŚĺşçŻĺ˛ăŤć¸Ąăăăĺż čŚăăăăă¨ăćĺłăăžăăăăăŻăĺż čŚäťĽä¸ăŤăăăăéŠç¨ăăŚăăžăă ĺşćŹçăŤăăăŽćŠč˝ĺ¤ć´ăĺŽçžăăăŤăŻăhttplibăŤă˘ăŻăťăšăăăăč¤éăŞăĄă˝ăăăŽç´50ďź ăĺĺŽčŁ ăăĺż čŚăăăăžăă
ăăźă2ăŻăăăŽăăăŞăăăăŽäżĺŽăćŻčźçé˘ĺă§ăăă¨ăăăă¨ă§ăă ćŁĺ¸¸ăŤĺŽčĄăăăŤăŻăhttplibďźçžćçšă§ăŻăăéŠĺăŤăŻhttp.clientďźăŽä¸ŚĺăăŠăźăŻăŤç¸ĺ˝ăăăăŽăŽçśćăéĺ§ăăĺż čŚăăăăžăă ăăăăŻăăăŽç¨ŽăŽĺ¤ć´ăŤăăéŠăăĺĽăŽHTTPăšăżăăŻăŽäżĺŽč˛ ć ăĺźăĺăăĺż čŚăăăăžăă ăăŽé¨ĺăŻăăăŽăăăŞćŠč˝ăćăă§ăăäşşăŤăŻăăčŚč˝ă¨ăăăŚăăă¨ćăăžăăăăăĺŽčŁ ăăăłăšăăŻéŤăă§ăăăăăšăŚăŽăăŠăăăăŠăźă ă§ăăŽăăăŞćŠč˝ăăľăăźăăăăăăŽçśçśçăŞăĄăłăăăłăšăłăšăă¨ćŻčźăăă¨ăăăăŻä˝ăăăăžăăă
ăăźă3ăŻăăăŽăăăŞăăăăŽĺŠçšăä¸ć確ă§ăăă¨ăăăă¨ă§ăă ĺŽĺ ¨ăŞăżă¤ă ă˘ăŚăăăăăĺż čŚă¨ăăăťă¨ăăŠăŽäşşăŻăčŞĺăä˝ăćăă§ăăăăŤă¤ăăŚĺŽĺ ¨ăŤć確ăŤčăăŚăăŞăă¨ăăăŽăç§ăŽçľé¨ă§ăă ăťă¨ăăŠăŽĺ ´ĺăĺč¨ăżă¤ă ă˘ăŚăăăŠăĄăźăżăŻăççąăăŞăĺŽĺ ¨ăŤéŠĺăŞăŞăŻă¨ăšăă埡ĺśçľäşăăĺšćăăăăžăă
ăă¨ăă°ăăăĄă¤ăŤăăăŚăłăăźăăăăłăźăăĺ°ăč¨č¨ăăăăłă°ăĺŚçăăăă¨ăăžăă ćĺăŻăăŠăăăŞĺč¨ăżă¤ă ă˘ăŚăăč¨ĺŽăăăăŽă§ăăďźăăŞăŻă¨ăšăăŤ30ç§äťĽä¸ăăăăă¨ăŻăăăžăăďźăďźăăăŽăăăŞăżă¤ă ă˘ăŚăăŻăă¤ăłăăéăăžăă ăă¨ăă°ăăăĄă¤ăŤăŽăľă¤ăşă30MBăă30GBăŤĺ¤ć´ăăăĺ ´ĺăăăŚăłăăźăăĺŽĺ ¨ăŤćŁĺ¸¸ă§ăăŁăŚăăăăŽăăăŞăăĄă¤ăŤăŻăăŽăăăŞćéééă§ăăŚăłăăźăăăăă¨ăŻă§ăăžăăă
č¨ăćăăă¨ăĺč¨ăżă¤ă ă˘ăŚăăŻé ĺçăŞĺäťăŞĺéĄă§ăăĺéĄă解湺ăăŚăăăăăŤčŚăăžăăăĺšćçăŤăŻĺŽčĄăăŚăăžăăă ç§ăŽćčŚă§ăŻăăăäžżĺŠăŞă˘ăăăźăăŻă
stream=True
ăăăłiter_content
ă¨çľăżĺăăăŚăă˝ăąăăă˘ăŻăˇă§ăłăă¨ăŽăżă¤ă ă˘ăŚăăĺŠç¨ăăăăźăżăŽăăŁăłăŻăŤăżă¤ă ă˘ăŚăăĺ˛ăĺ˝ăŚăăă¨ă§ăăiter_content
ăćŠč˝ăăćšćłă§ăŻăĺśĺžĄăăăźăŻăăç¨ĺşŚä¸ĺŽăŽééă§ăłăźăăŤčżăăăžăă ă¤ăžăăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăďźäžďź5ç§ďźăč¨ĺŽăăŚăăăăăŞăĺ°ăăŞăăŁăłăŻďźäžďź1KBăŽăăźăżďźăŤĺŻžăăŚiter_content
ăč¨ĺŽăăçŠćĽľçăŤćťćăăăŚăăŞăéăăăľăźăăšćĺŚăăŞăăă¨ăćŻčźç確俥ă§ăăžăăăăă§ĺŻč˝ă§ăă ăľăźăăšćĺŚăćŹĺ˝ăŤĺżé ăŞĺ ´ĺăŻăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăăăŻăăăŤä˝ăč¨ĺŽăăăăŁăłăŻăľă¤ăşăĺ°ăăďź0.5ç§ă¨512ăă¤ăďźăăŚăĺśĺžĄăăăźăĺŽćçăŤčżăăăăăăŤăăžăăăăăăăšăŚăŽçľćăŻăăăŽăăăŞăŠă¤ăăŠăŞă§ăŻăĺč¨ăżă¤ă ă˘ăŚăă誤ăŁăćŠč˝ă§ăăă¨ç§ă俥ăăŚăăăă¨ă§ăă ćéŠăŞç¨ŽéĄăŽăżă¤ă ă˘ăŚăăŻă大ăăŞĺżçăĺŽĺżăăŚăăŚăłăăźăă§ăăăăăŤčŞżć´ăăăăăŽă§ăăăăŽăăăŞăżă¤ă ă˘ăŚăăŻăă˝ăąăăăŹăăŤăŽăżă¤ă ă˘ăŚăă¨
iter_content
ăŤăăŁăŚćéŠăŤĺŚçăăăžăă