iT邦幫忙

1

想要測試POST上傳資料至公開API網站上遇到問題

各位好 我目前正在嘗試使用POST上傳隨便字串到公開API伺服器 使用以下
https://ithelp.ithome.com.tw/upload/images/20200606/201265776I330Q2RPP.png
公開API網址
此圖裡面的應該是別人也在測試隨便丟上來的值,我也是想要亂丟個值上來做測試
然後出現標頭錯誤的響應
https://ithelp.ithome.com.tw/upload/images/20200606/20126577Xgq5tXi5kY.png
附上官方提供的請求標頭
https://ithelp.ithome.com.tw/upload/images/20200606/20126577vzZ5WAg2Cu.png

目前程式寫法

import requests
import json

headers = {
'Accept-Charset': 'utf-8',
'Accept': 'application/fhir+xml;q=1.0, application/fhir+json;q=1.0, application/xml+fhir;q=0.9, application/json+fhir;q=0.9',
'User-Agent': 'HAPI-FHIR/4.0.3 (FHIR Client; FHIR 4.0.0/R4; apache)',
'Accept-Encoding': 'gzip'
}

password = 'A123456789'
account = '王明'

postdata = {"username":account, "password":password}
r = requests.post(url='https://hapi.fhir.tw/fhir/Person?_include=Person%3Alink&_pretty=true', data=postdata , headers=headers)
print(r.text)
response = json.loads(r.text)
print('請求狀態',r.status_code)

懇請指教

1 個回答

1
dragonH
iT邦超人 5 級 ‧ 2020-06-06 21:45:43
最佳解答

阿他不是說這是 GET

我沒看到他說可以用 POST

image

code

import requests
import json
r = requests.get(url='https://hapi.fhir.tw/fhir/Person?_include=Person%3Alink&_pretty=true')
print(r.text)
response = json.loads(r.text)
print('請求狀態',r.status_code)
看更多先前的回應...收起先前的回應...

有支援post
https://ithelp.ithome.com.tw/upload/images/20200606/20126577W30GMNA30r.png

官方來源

dragonH iT邦超人 5 級 ‧ 2020-06-06 23:22:47 檢舉

qvrblz619736

你貼的那個不是再說這個呀

import requests
import json
postdata = {
    "username": '王明',
    "password": 'A123456789',
    "resourceType": "Person"
}
r = requests.post(url = 'https://hapi.fhir.tw/fhir/Person', data = json.dumps(postdata))
print(r.text)
response = json.loads(r.text)
print('請求狀態',r.status_code)

這樣就可以了

感謝 前輩指導 剩下我慢慢研究

我有一個疑問就是 為什麼我identifier 內容 那段沒出現
範本
https://ithelp.ithome.com.tw/upload/images/20200607/20126577BUe1ANu9FV.png

identifier username password

import requests
import json
postdata = {
    "resourceType": "Person",
    "identifier": [{'username': 'B0509020', 'password': 'A123456789'}]
    }

r = requests.post(url = 'https://hapi.fhir.tw/fhir/Person', data = json.dumps(postdata))

print(r.text)
response = json.loads(r.text)
print('狀態',r.status_code)
dragonH iT邦超人 5 級 ‧ 2020-06-07 14:25:39 檢舉

qvrblz619736

這樣

code

import requests
import json
postdata = {
    "resourceType": "Person",
    "identifier": [
        {
            'type': {
                'text': 'username'
            },
            'value': 'dragonH'
        },
        {
            'type': {
                'text': 'password'
            },
            'value': 'test'
        },
    ]
}
r = requests.post(url = 'https://hapi.fhir.tw/fhir/Person', data = json.dumps(postdata))

print(r.text)
response = json.loads(r.text)
print('狀態',r.status_code)

result

好了,謝謝前輩,受益良多

dragonH iT邦超人 5 級 ‧ 2020-06-07 14:32:09 檢舉

/images/emoticon/emoticon42.gif

我要發表回答

立即登入回答