はじめに
pythonでラズパイからlocalhostのサーバにデータを送って色々と処理しようとしたときに、そもそもデータ送れないってなって困ってたのでその内容。
そもそも単純に送るならどうする?
JSON送るならこんな感じ
import requests
import json
# POST先URL
url = "POST送信するURL"
# JSON形式のデータ
jsonData = {
"col1": "val1",
"col2": "val2"
}
# POST送信
response = requests.post(
url,
json = json.dumps(jsonData) #jsonはなくても送信可能
)
resDatas = response.json()
URL指定して後は終わりーって思ってたのに遅れない
理由
WindowsでWSL使ってたのだが
実際に入力していたURLはWindowsのip元にしたURLでした
WSL使ってると
WindowsのIPアドレスとWSLの二つのIPが生まれる
外部からlocalhostに接続しようと思うと
外部端末→WSLのIP→WindowsのIP
っていう順番になる。
外部接続の窓口はWSLのIP使う
今回僕はWindowsのIP使ったURLの方を使ってたから一つ段階とばしてる状態になってた。
**ちゃんと窓口通さんと通信させへんぞ!!**って怒られてるイメージ
ちなみに両方のipはコマンドプロンプトからipconfigで確認できる。
おそらくmacだとこうはならずに普通にIP通したら行けるはず。
なんかめんどくさいなwsl