Encontré este script en línea:
import httplib, urllib
params = urllib.urlencode({'number': 12524, 'type': 'issue', 'action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
print response.status, response.reason
302 Found
data = response.read()
data
'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
conn.close()
Pero no entiendo cómo usarlo con PHP o qué es todo dentro de la variable params o cómo usarlo. ¿Puedo tener un poco de ayuda para que esto funcione?
live http header
complemento de firefox y luego abrir su url en firefox y ver larequest/response
url en ellive http header
complemento de lo que entenderá quéparams and headers
hacer en su código.Respuestas:
Si realmente quiere manejar HTTP con Python, le recomiendo Solicitudes: HTTP para humanos . El inicio rápido POST adaptado a su pregunta es:
fuente
json={'number': 12524...
lugar dedata=...
Si necesita que su script sea portátil y prefiere no tener dependencias de terceros, esta es la forma en que envía la solicitud POST únicamente en Python 3.
Salida de muestra:
fuente
No puede realizar solicitudes POST usando
urllib
(solo para GET), en su lugar intente usar elrequests
módulo, por ejemplo:Ejemplo 1.0:
Ejemplo 1.2:
Ejemplo 1.3:
fuente
Use la
requests
biblioteca para OBTENER, POSTAR, PONER o ELIMINAR presionando un punto final de la API REST. Pase el resto de la URL del punto final de la APIurl
, la carga útil (dict)data
y el encabezado / metadatos enheaders
fuente
headers
El parámetro está mal y tampoco tenemos ningún JSON aquí. Deberíamos usarjson.dumps(pauload)
Su diccionario de datos contiene nombres de campos de entrada de formulario, simplemente mantenga sus valores correctos para encontrar resultados. El encabezado de vista de formulario configura el navegador para recuperar el tipo de datos que declara. Con la biblioteca de solicitudes es fácil enviar POST:
Más sobre el objeto Solicitud: https://requests.readthedocs.io/en/master/api/
fuente
Si no desea usar un módulo que debe instalar
requests
, y su caso de uso es muy básico, puede usarurllib2
Consulte la documentación
urllib2
aquí: https://docs.python.org/2/library/urllib2.html .fuente