Python obtiene un nombre de dominio local
Los detalles son los siguientes:
El CGI de prueba se llama test.py y se coloca en el directorio cgi-bin de Apache:
#!/ usr/bin/python
Importar cgi
def main():
Imprimir tipo de contenido: texto/htmln
form = cgi . Almacenamiento de campo()
si form.has_key(ServiceCode) y form[ServiceCode]. ¡valor! =:
print h1 Hola, formulario[ServiceCode]. Valor, /h1
De lo contrario:
¡Imprimir error h1! Por favor ingrese un nombre. /h1
Main()
Python envía solicitudes de publicación y obtención
Solicitud de obtención:
Cuando se utiliza el método get, la solicitud data Ponlo directamente en la URL.
Método uno,
Siete
Ocho
Importar urllib
Importar urllib2
url =
req = urllib2. Solicitud (url)
Imprimir solicitud
res_data = urllib2.urlopen(req)
res = res_data.read()
Imprimir Resolución
Método dos,
Siete
Importar httplib
url =
conn = httplib. conexión http(192.168.81.16)
conn.request(método=GET, url=url)
respuesta = conn.getresponse()
res= respuesta .read()
Resolución de impresión
Solicitud de publicación:
Cuando se usa el modo de publicación, los datos se colocan en los datos o el cuerpo, no en la URL. La URL será ignorada.
Método 1,
Importar urllib
Importar urllib2
test_data = {ServiceCode: aaaa, b: bbbbb}
test_data_urlencode = urllib . urlencode(test_data)
solicitud url =
req = urllib2.
request(url = requrl, data =test_data_urlencode)
Imprimir solicitud
res_data = urllib2.urlopen(req)
res = res_data.read() p> p>
Resolución de impresión
Método 2,
11
Importar urllib
Importar httplib
test_data = {ServiceCode: aaaa, b: bbbbb}
test_data_urlencode = urllib.urlencode(test_data)
Url de solicitud =
datos del encabezado = { Host : 192.168.81.16 }
conn = httplib. conexión http(192.168.81.16)
conn.request(método=POST, url=requrl, cuerpo=test_data_urlencode, encabezados = headerdata)
respuesta = conn.getresponse() p>
res= Response.read()
Resolución de impresión
El uso de json en Python no está claro, por lo que se utiliza el método urllib.urlencode(test_data) Siendo por el momento.
Diferencias entre los módulos urllib, urllib 2 y httplib
Httplib implementa los protocolos de cliente de http y https, pero en python, los módulos urllib y urllib2 están en un nivel superior httplib está encapsulado en ello.
Presentando las funciones utilizadas en los siguientes ejemplos:
1. Función HTTPConnection
httplib. HTTPConnection(Host[, Port[, Statistics[, Timeout]])
Este es un constructor que representa la interacción con el servidor, es decir, solicitud/respuesta.
Host identifica el host del servidor (IP del servidor o nombre de dominio)
El valor predeterminado del puerto es 80.
El modo estricto es Falso, lo que indica si se debe generar una excepción BadStatusLine cuando la línea de estado devuelta por el servidor no se puede analizar.
Por ejemplo:
conn = http lib. httpconnection(192.168.81.16, 80) establece un enlace con el servidor.
2.Conexión HTTP. Función de solicitud (método, URL [, cuerpo [, encabezado]]).
Esta es una solicitud al servidor.
Las solicitudes de método suelen ser de publicación o de obtención.
Por ejemplo:
Método=POST o Método=Obtener.
URL del recurso solicitado, recurso solicitado (página o CGI, aquí está CGI)
Por ejemplo:
url=
O
url=
Los datos que el cuerpo debe enviar al servidor pueden ser json o el formato anterior, y json debe llamar al módulo json.
Datos del encabezado HTTP solicitados por headers = { host: 192.168.438 0.16 }
Por ejemplo:
test_data = {ServiceCode: aaaa, b: bbbbb}
prueba _ datos _ urlencode = urllib . urlencode (prueba _ datos)
Url de solicitud =
datos de encabezado = { Host: 192.168.81.16 } p >
conexión = httplib. conexión http(192.168.81.16, 80)
conn.request(method=POST, url=requrl, body=test_data_urlencode, headers=headerdata)
conn.close debe cerrarse después utilizar ()
3.HTTPConnection.getresponse() función
Esto es para obtener la respuesta http, y el objeto devuelto es una instancia de la respuesta http.
4. Introducción a HTTPResponse:
Los atributos de HTTPResponse son los siguientes:
Read([amt]) obtiene el cuerpo del mensaje de respuesta, amt significa leer del flujo de respuesta Especifique bytes de datos; si no se especifica, lea todos los datos;
Getheader(nombre[, predeterminado]) obtiene el encabezado de respuesta, donde nombre es el nombre de dominio del encabezado y el valor predeterminado se usa para especifique la devolución cuando no haya ningún valor de nombre de dominio de encabezado.
Getheader() obtiene el título en forma de lista.
Por ejemplo:
1
2
Tres
Cuatro
Cinco
fecha=response.getheader(fecha);
Imprimir fecha
Reshedder=
resheder = respuesta.get headers();
Imprimir re-head
Información del encabezado de respuesta en forma de columna:
1
2
三
p>
[(longitud del contenido, 295), (rangos de aceptación, bytes), (servidor, Apache), (última modificación, sábado 31 de marzo de 2012 a las 10:07:02 GMT ), (conexión, cerrar), (etag, e 8744-127-4b c 871 E4 FDD 80), (fecha, lunes, 3 de septiembre de 2012 65438)
date=response.getheader(date);
Imprimir fecha
Recuperar el valor de fecha en el encabezado de respuesta.
Espero que este artículo sea útil para tu programación en Python.