Il y a plusieurs façons de le faire, en se fondant sur le fait que vous avez accès au CGI qui reçoit la demande. La meilleure option est d'envoyer votre data
comme POST
au lieu de GET
. Si vous ne pouvez pas le faire pour une raison quelconque, vous pouvez essayer d'envoyer vos données avec une sorte de compression et de les décompresser au CGI. Si la communication se produit entre deux serveurs, le premier serveur peut enregistrer data
dans un fichier et envoyer le nom de fichier au deuxième serveur, de sorte que le CGI récupère ce fichier au lieu de lire les données de l'URL.
Vous pouvez adapter le CGI pour recevoir les données en plusieurs parties, diviser les données et marquer chaque demande avec une autre variable, comme function=doitnow&data=bytes&chunk=1&total=2&id=somekey
, function=doitnow&data=more-data&chunk=2&total=2&id=somekey
Comme je ne l'utilise pas vraiment trop Python, je ne » t savoir comment gérer POST ou GET valeurs, juste si est le cas, ci-dessous est un wrapper pour passer POST et GET valeurs à un script php:
#!/bin/sh
echo "Content-Type: text/html;"
echo
echo
#POST=`dd count=$CONTENT_LENGTH bs=1 2> /dev/null`
POST=`dd bs=1 2> /dev/null`
php -f 'dosomething.php' -- "$POST" "$QUERY_STRING"
Il n'y a rien intrinsèque à la méthode POST qui exige que tous les paramètres Les données doivent figurer dans le corps de la requête au lieu de la chaîne de requête. Un navigateur le fera avec des valeurs de champs de formulaire, oui. Et souvent, vous postez des choses comme des fichiers qui ne fonctionnent que dans le corps. Mais ce n'est pas vrai que "s'il y a des données dans l'URL, ce n'est pas une requête POST". –
@Sixten: C'est un pari sûr, dans ce cas, et il semble que j'avais raison. Point pris, cependant. :) –