Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
bd01374d
Kaydet (Commit)
bd01374d
authored
Ara 10, 1996
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Add optional data argument to urlopen() and open_http(), to trigger POST.
üst
8b82baa3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
9 deletions
+26
-9
urllib.py
Lib/urllib.py
+26
-9
No files found.
Lib/urllib.py
Dosyayı görüntüle @
bd01374d
...
...
@@ -21,7 +21,7 @@ import os
import
sys
__version__
=
'1.
5
'
__version__
=
'1.
6
'
# Helper for non-unix systems
if
os
.
name
==
'mac'
:
...
...
@@ -43,11 +43,14 @@ else:
# Shortcut for basic usage
_urlopener
=
None
def
urlopen
(
url
):
def
urlopen
(
url
,
data
=
None
):
global
_urlopener
if
not
_urlopener
:
_urlopener
=
FancyURLopener
()
return
_urlopener
.
open
(
url
)
if
data
is
None
:
return
_urlopener
.
open
(
url
)
else
:
return
_urlopener
.
open
(
url
,
data
)
def
urlretrieve
(
url
,
filename
=
None
):
global
_urlopener
if
not
_urlopener
:
...
...
@@ -114,7 +117,7 @@ class URLopener:
# External interface
# Use URLopener().open(file) instead of open(file, 'r')
def
open
(
self
,
fullurl
):
def
open
(
self
,
fullurl
,
data
=
None
):
fullurl
=
unwrap
(
fullurl
)
type
,
url
=
splittype
(
fullurl
)
if
not
type
:
type
=
'file'
...
...
@@ -129,14 +132,20 @@ class URLopener:
import
regsub
name
=
regsub
.
gsub
(
'-'
,
'_'
,
name
)
if
not
hasattr
(
self
,
name
):
return
self
.
open_unknown
(
fullurl
)
if
data
is
None
:
return
self
.
open_unknown
(
fullurl
)
else
:
return
self
.
open_unknown
(
fullurl
,
data
)
try
:
return
getattr
(
self
,
name
)(
url
)
if
data
is
None
:
return
getattr
(
self
,
name
)(
url
)
else
:
return
getattr
(
self
,
name
)(
url
,
data
)
except
socket
.
error
,
msg
:
raise
IOError
,
(
'socket error'
,
msg
),
sys
.
exc_traceback
# Overridable interface to open unknown URL type
def
open_unknown
(
self
,
fullurl
):
def
open_unknown
(
self
,
fullurl
,
data
=
None
):
type
,
url
=
splittype
(
fullurl
)
raise
IOError
,
(
'url error'
,
'unknown url type'
,
type
)
...
...
@@ -180,7 +189,7 @@ class URLopener:
# Each method named open_<type> knows how to open that type of URL
# Use HTTP protocol
def
open_http
(
self
,
url
):
def
open_http
(
self
,
url
,
data
=
None
):
import
httplib
if
type
(
url
)
is
type
(
""
):
host
,
selector
=
splithost
(
url
)
...
...
@@ -202,10 +211,18 @@ class URLopener:
else
:
auth
=
None
h
=
httplib
.
HTTP
(
host
)
h
.
putrequest
(
'GET'
,
selector
)
if
data
is
not
None
:
h
.
putrequest
(
'POST'
,
selector
)
h
.
putheader
(
'Content-type'
,
'application/x-www-form-urlencoded'
)
h
.
putheader
(
'Content-length'
,
'
%
d'
%
len
(
data
))
else
:
h
.
putrequest
(
'GET'
,
selector
)
if
auth
:
h
.
putheader
(
'Authorization'
,
'Basic
%
s'
%
auth
)
for
args
in
self
.
addheaders
:
apply
(
h
.
putheader
,
args
)
h
.
endheaders
()
if
data
is
not
None
:
h
.
send
(
data
+
'
\r\n
'
)
errcode
,
errmsg
,
headers
=
h
.
getreply
()
fp
=
h
.
getfile
()
if
errcode
==
200
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment