0
私はaiohttp(とasyncio)を使ってPOSTリクエストをPHPアプリケーションに送信しています。 Pythonでjsonのヘッダを設定すると、PHPアプリケーションは$ _POSTデータを受け取りません(PHPにはContent-Type: application/json
ヘッダーが設定されています)。投稿とJWSでJSONデータを送信
PHP側コードはjson_encode($_POST)
を返します。
#!/usr/bin/env python3
import asyncio
import simplejson as json
from aiohttp import ClientSession
from aiohttp import Timeout
h = {'Content-Type': 'application/json'}
url = "https://url.php"
d = {'some': 'data'}
d = json.dumps(d)
# send JWS cookie
cookies = dict(sessionID='my-valid-jws')
async def send_post():
with Timeout(5):
async with ClientSession(cookies=cookies, headers=h) as session:
async with session.post(url, data=d) as response:
if (response.status == 200):
response = await response.json()
print(response)
loop = asyncio.get_event_loop()
loop.run_until_complete(send_post())
これを実行している私が得た:[]
ヘッダのparamとjson.dump(d)
を取り除く私が取得:{"some:"data"}
は
ヘッダーを設定しています。コードはhttps://github.com/edoz90/SimpleRest/blob/master/lib/Rest.inc.phpにあります。 私はどのようにお勧めしますか試してみます。 – edoz90
はい、私のスニペットが正常に動作するためには 'Content-Type'ヘッダとして' application/json'を設定することが必須です: "jsonの場合、解読してください" –
strncmpは、 if stnncmp(....)== 0 – edoz90