Home >Backend Development >Python Tutorial >POST/GET package construction and random string generation in Python

POST/GET package construction and random string generation in Python

高洛峰
高洛峰Original
2016-10-18 11:22:311123browse

Now, let’s use Python to create GET packages and POST packages.

As for its usefulness, everyone will slowly understand it.

Python contains a large number of libraries. As an emerging language, Python has strong enough support for HTTP.

Now, we introduce the new libraries httplib and urllib

Based on the names of these two libraries, we can know that they operate on HTTP and URL.

First we need to establish a connection with the server. (We use a certain Weibo as an example to implement the various functions below)

conn = httplib.HTTPConnection("ti50*****com");

As long as there is no error prompt, we can consider the connection successful, as follows You can then send the data packet.

We have mentioned the structure of the GET package above, only the HEARDER part. In httplib, heaer is saved through a dictionary. Let's define it below:

headers = {"Content-Type": "application/x-www-form-urlencoded",

"Accept": "text/html,application/xhtml+xml,application/xml; q=0.9,*/*;q=0.8",

"Referer": "http://ti50.*****com/g/s?sid=**************** **********",

"Accept-Encoding": "",

"Accept-Language": "zh-CN,zh;q=0.8",

"Accept-Charset" : "GBK,utf-8;q=0.7,*;q=0.3",

"Cookie": Cookie }

Accept-Encoding We deleted its content, which means that for the server, our client cannot accept any compression format, the data packet will be sent back with the original data, so that we can omit the decompression process and directly analyze the web page, but the consequences of this are large traffic and poor network real-time performance. Naturally, there are other libraries that specifically handle decompression.

Then we can send it directly.

conn.request(method="GET",url='''http://ti50****com/g/s?************_TK9EH&r=''' + go_num + ' ''&aid=amsg&bid=******=true&ifh=1&ngpd=false''',headers=headers);

method field indicates what type of data packet is sent.

The url field defines the address in the form of a string

The header field defines the header.

Generally speaking, when a data packet is sent to the server, the server will return a response packet accordingly. And this response packet is often useful to us. We use the following command to obtain the response packet.

response = conn.getresponse();

For the brackets in the above statement, it indicates how many first characters of the response packet are read.

The creation process of POST package and GET package is basically the same.

It’s just that we need to newly define BODY. This part can be defined as a string.

params = 'msg=******************************'

We still need to connect before the server.

conn = httplib.HTTPConnection("ti50*****com");

Send

conn.request(method="POST",url='''/g/s?sid=**** ****************&ngpd=false''',body=params,headers=headers);

You can find that there is a slight difference between the above formula and the format of sending GET packets.

method changed.

There is no domain name written in the url.

An extra body field is added.

The second one can be thought of. If no domain name is defined, the system will replace the domain name used for the most recent connection with the server.

The method of obtaining the response packet is the same as the GET packet.

Messy little apps.

(1) Generation of random strings.

When we use POST to do some interesting things, we often encounter server verification problems. Sometimes we can use random strings to handle such situations.

A library for random numbers in python...random.

Very convenient for simple applications. For example, we generate a random integer between a and b.

random.randint(a,b)

>>> random.randint(10,20)

>>> 15

Knowing this step, we can easily write a random string program,

from random import Random
def random_str(randomlength):
    str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str+=chars[random.randint(0, length)]
    return str

Apparently when this function is called a random string length should be given.

Of course, we can also define the characters in the random string by modifying the characters in chars.

(2) Program running time

We now give a very imprecise method for calculating program time,

from time import clock as now
start = now()
finish = now()
run_time = finish - start
print run_time


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn