Red de conocimiento informático - Problemas con los teléfonos móviles - Python obtiene un nombre de dominio local

Python obtiene un nombre de dominio local

Este artículo describe el método de Python para enviar solicitudes http y recibir respuestas http a través de GET y POST. Compártelo con todos para tu referencia.

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>

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()

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 }

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.