簡體   English   中英

python 中的 POST 請求負載未到達 PHP 服務器

[英]POST request payload in python not reaching PHP server

我正在嘗試將 JSON 有效負載與 python 中的 python 請求中的 session 請求發送到 Z2FEC392304A4C23AC1388DA222B222B22B服務器。 session 本身已建立並且 cookies 被服務器接受,但是當我打印出$_POST時,它返回一個空數組。 看起來負載沒有隨請求一起發送,或者 PHP 可能無法識別它。

客戶端 - Python:

import json
import requests

url = 'https://prov.is.st.com/eventpost.php'
    payload = {
        'script': 'pyt.sh',
        'status': 'Success'
    }

    s = requests.Session()
    s.cookies.set('provisioning', cookie, domain='prov.is.st.com')
    headers = {
    'Content-Type': 'application/json'
    }
    s.headers.update(headers)
    response = s.post(url, data=payload, verify=False)
    print(response.text)

服務器端 - PHP:

<?php
print_r($_POST);
if(isset($_POST['status'])){
 $status = $_POST['status'];
}
else{
  $status=0;
}

if (isset($_POST['script'])) {
  $script=$_POST['script'];
} else {
  $script="unknown";
}

if (isset($_COOKIE['provisioning'])) {
  $cookie=$_COOKIE['provisioning'];
   print "OK: Message accepted: [$status][$script]\n";
  }
 else {
  print "ERROR: NO cookie provided.\n";
}

Output

Array
(
)
OK: Message accepted: [0][unknown]

根據此處的文檔: https://2.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests ,為了發布 Z0ECD11C1D7A287401D148A23BBD 的以下 7 種方式:

import json
...
response = s.post(url, data = json.dumps(payload), verify = False)

或者

...
response = s.post(url, json = payload, verify = False)

請注意,如果傳遞datafiles ,則忽略json參數。

在請求中使用json參數會將 header 中的Content-Type更改為application/json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM