Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo responde Python a la interfaz que envía solicitudes de obtención y publicación desde segundo plano

Cómo responde Python a la interfaz que envía solicitudes de obtención y publicación desde segundo plano

Prueba CGI en el directorio cgi-bin de Apache, llamado test.py:

#! /usr/bin/Python

importar cgi

def main():

imprimir "Tipo de contenido: texto/html\n"

form = cgi.FieldStorage()

si form.has_key("ServiceCode") y form["ServiceCode"].value ! = "":

imprimir "lt;h1gt;Hola", formulario["ServiceCode"].valor, "lt;/h1gt;"

más:

print "lt;h1gt; ¡Error! Ingrese un nombre.lt;/h1gt;"?

main()

Python envía publicaciones y recibe solicitudes

Obtener solicitud:

Cuando se utiliza el método get, los datos de la solicitud se colocarán directamente en la URL.

Método 1,

importar urllib

importar urllib2

url = "/')

html = Response.read()

imprimir html

Presione F5 para ver los resultados de ejecución:

Podemos abrir la página de inicio de Baidu, hacer clic derecho y seleccionar Ver Código fuente (se puede usar Firefox o Google Chrome), encontrará que el contenido interno es exactamente el mismo

En otras palabras, las cuatro líneas de código anteriores imprimen todos los códigos recibidos por el navegador. cuando visitamos Baidu

Este es el ejemplo más simple de urllib2

Excepto "')?

respuesta = urllib2.urlopen(req)?

the_page = respuesta.read()?

imprimir the_page

Puedes ver que el resultado es el mismo que test01.

urllib2 utiliza la misma interfaz para todos los encabezados de URL. Por ejemplo, puede crear una solicitud ftp como se muestra a continuación.

req = urllib2.Request('ftp://example.com/')

Las solicitudes HTTP le permiten hacer dos cosas.

1. Enviar datos desde un formulario

Para las personas que han trabajado en la Web, estos contenidos les resultan familiares.

A veces, desea enviar datos a un URL. Envíe algunos datos (normalmente la URL se conectará a un script CGI [Common Gateway Interface] u otra aplicación WEB).

En HTTP, los datos generalmente se envían mediante la conocida solicitud POST.

Esto normalmente lo hace el navegador cuando envía un formulario HTML.

No todos los POST provienen de formularios, puedes utilizar POST para enviar cualquier dato a tu programa.

Para formularios HTML normales, los datos deben codificarse en un formulario estándar. Luego, los datos se pasan al objeto Solicitud como parámetros de datos.

La codificación se realiza utilizando las funciones de urllib en lugar de urllib2.

Creemos un nuevo archivo urllib2_test03.py y familiaricémoslo:

¿importar urllib?

importar urllib2?

url = ' /register.cgi'?

valores = {'nombre': 'POR QUÉ',

'ubicación': 'SDU',

'language': 'Python' }?

data = urllib.urlencode(values) # Trabajo de codificación

req = urllib2.Request(url, data)?# Enviar una solicitud mientras pasando el formulario de datos

respuesta = urllib2.urlopen(req)?# Aceptar comentarios

the_page = respuesta.read()?# Leer contenido de comentarios

Si no se pasan datos. Parámetros que urllib2 utilizará para las solicitudes GET.

La diferencia entre las solicitudes GET y POST es que las solicitudes POST suelen tener "efectos secundarios",

cambian el estado del sistema de alguna manera (por ejemplo, enviar un resultado a su puerta) montones de basura).

Los datos también se pueden entregar codificándolos en la propia URL de solicitud de obtención.

¿importar urllib2?

importar urllib

datos = {}

datos['nombre'] = '¿POR QUÉ'?

datos['ubicación'] = 'SDU'?

datos['idioma'] = 'Python'

url_values ​​​​= urllib.urlencode(datos) ?

imprimir valores_url

nombre=Alguien aquíamp; idioma=Pythonamp; ubicación=Northampton?

url = '/ejemplo.cgi'?

full_url = url '?' url_values

data = urllib2.open(full_url)

De esta manera puede obtener la transmisión de datos.

2. ¿Establecer encabezados en /cgi-bin/register.cgi'

user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'?

valores = {'nombre': 'POR QUÉ',

'ubicación': 'SDU',

'idioma': 'Python'}?

headers = { 'User-Agent' : user_agent }?

data = urllib.urlencode(valores)?

req = urllib2.Request(url, ¿datos, encabezados)?

respuesta = urllib2.urlopen(req)?

the_page = respuesta.read()?

Lo anterior es cómo Python usa urllib2 especificando Captura todo el contenido de la URL de la página web, muy sencillo, ¿verdad?