requests - ¿Cómo se envía una solicitud web HTTP Get en Python?
request python tutorial (2)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cuál es la forma más rápida de HTTP GET en Python? 9 respuestas
Tengo problemas para enviar datos a un sitio web y obtener una respuesta en Python. He visto preguntas similares, pero ninguna de ellas parece lograr lo que estoy buscando.
Este es mi código de C # que intento portar a Python:
static void Request(Uri selectedUri)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(selectedUri);
request.ServicePoint.BindIPEndPointDelegate = BindIPEndPointCallback;
request.Method = "GET";
request.Timeout = (int)Timeout.TotalMilliseconds;
request.ReadWriteTimeout = (int)Timeout.TotalMilliseconds;
request.CachePolicy = CachePolicy;
request.UserAgent = UserAgent;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader responseReader = new StreamReader(response.GetResponseStream()))
{
string responseText = responseReader.ReadToEnd();
File.WriteAllText(UrlFileName, responseText.Trim(), Encoding.ASCII);
}
}
}
Aquí está mi intento en Python:
def request():
web = httplib.HTTPConnection(''https://someurl.com'');
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
web.request("GET", "/heartbeat.jsp", headers);
response = web.getresponse();
stream = ""; #something is wrong here
¡Cualquier ayuda sería apreciada!
En Python, puede usar urllib2
( urllib2 ) para hacer todo el trabajo por usted.
Simplemente suficiente
import urllib2
f = urllib2.urlopen(url)
print f.read()
Imprimirá la respuesta HTTP recibida.
Para pasar los parámetros GET / POST, se puede usar la función urllib.urlencode()
. Para más información, puede consultar el Tutorial oficial de Urllib2
Puedes usar urllib2
import urllib2
content = urllib2.urlopen(some_url).read()
print content
También puedes usar httplib
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD","/index.html")
res = conn.getresponse()
print res.status, res.reason
# Result:
200 OK
o la biblioteca de solicitudes
import requests
r = requests.get(''https://api.github.com/user'', auth=(''user'', ''pass''))
r.status_code
# Result:
200