#python #php #sockets #http
Вопрос:
я хочу получить отправленный почтовый запрос с php с использованием python. но, по-видимому, когда я получаю информацию, я получаю не ту информацию, которую хочу.
это мой php-код:
<?php
$Options = array('http' =>
array(
'method' => 'POST',
'content' => "Request Payload",
'timeout' => 9000
)
);
$Context = stream_context_create($Options);
$Result = file_get_contents("https://xx.xx.xx.xx", false, $Context);
?>
и это мой код на python:
import socket
HOST = "xx.xx.xx.xx"
PORT = 443
listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print(f'Serving HTTP on port {PORT} ...')
while True:
client_connection, client_address = listen_socket.accept()
request_data = client_connection.recv(1024)
print(request_data.decode('latin-1'))
client_connection.sendall(http_response)
client_connection.close()
И это мое сообщение, полученное из php на python:
▬♥☺☻ ☺ ☺ü♥♥→±±µ ð·!óñZ lB↑³w¸ ÕaivS`ÓoÛ {µKY↔ ì2Jò±˜šóñæé|ÁGÃöþfÁf~¤ªÑ –‼☻‼♥‼☺À/À À0À, ž ¢ £ ŸÀ'À#À‼À À(À$À¶À
g 3 @ k 8 9 œ À®À¬À¢Àž 2À Àœ < /À¯ÀÀ£ÀŸ jÀ¡À = 5̨̩̪À]ÀaÀWÀSÀÀ`ÀVÀRÀsÀw Ä ÃÀrÀv ¾ ½ ˆ ‡ E 78.39.159.102 ♂ ♦♥ ☺☻ ↕ ►
♀
0 ♠♥ # ▬ ↨
♠♦☺♣☺♠☺♥♥☻♥♥☺☻☺♥☻☻☻♦☻♣☻♠☻ ♥♦♥♥♥☻♥☺ - ☻☺☺ 3 amp; $ ↔ Ïø
ÈåœØ¬ÑXQ»F
˜õ☺’Ó ☺Å☻▼T—˜k–µÙV § n
Комментарии:
1. Вы отправляете по протоколу HTTPS-HTTP через TLS/SSL-но получаете через сокет с открытым текстом. Вам нужно получать через сокет SSL/TLS, но вам действительно следует использовать библиотеку HTTP-сервера более высокого уровня; любая приличная библиотека будет включать поддержку HTTPS.